Documention is switched to Jekyll
The two simple examples doing recording did not ask for recording permission.
iOS : Rename AudioPlayer as AudioPlayerFlauto to avoid duplicate symbol with "just_audio: ^0.5.7".
The two simple examples doing recording did not ask for recording permission.
Fixes a bug in setAudioFocus() when the focus parameter is t_AUDIO_FOCUS.requestFocus
Fixes an other problem in setAudioFocus() on Android and iOS
Fixes a crash in setAudioFocus() on Android
The documentation of the API is now generated by dartdoc.
The various traces done by Flutter Sound with the Dart code are now handled by 'util/log.dart'. (The traces done by iOS and Android are still hard coded).;
Fix a bug in Pause/Resume on the lock screen
Syntaxe error in flutter_sound_web.podspec
Little mistake in the Podspec file name for flutter_sound_web
Flutter Sound is supported by Flutter Web. You can play with (still cannot record with Safari or any web browser on iOS : thank you Apple). You can . Issues : , and
Fix a syntax error in the TauEngine build.gradle
English in the UI widget is now configurable
On Android : Flutter Sound is now a wrapper around TauEngine
Add a new example doing Speech-To-Text. Thanks to @jtkeyva :-) .
Publication on JCenter
On iOS, Flutter Sound use now a Pod library : TauEngine
On iOS : startPlayer() from a remote URL returned too early (before downloading the file)
The loop example, (from the recorder to the player) has now a delay < 1 sec.
Playback from a remote URL
Volume control with the volume buttons, on Android.
Re-design the modules architecture to be Google recommandations compliant. (We use a new dependency : flutter_sound_platform_interface)
openAudioSessionWithUI is now deprecated. Use the parameter withUI in openAudioSession() instead.
Little bug in the Demo App : 48000 is not a valid Sample rate for AAC/ADTS
Modification to the Widget Recorder UI, to be homogeneous with the Widget Player UI
Fix two severe bugs on Android in openAudioSessionWithUI and startPlayerFromTrack : those two functions returned too early instead of a future.
On iOS, the device did not go to sleep when idle, with the Flutter Sound default parameters.
Fix various bugs in UI Widget
Add a button Pause/Resume in UI Widget Recorder
Add a button Pause/Resume in UI Widget Player
Add a semaphore so that the App cannot do several call to Flutter Sound at the same time
On iOS : the "NowPlaying" info on the lockscreen is removed when the sound is finished or when the App does a stopPlayer(). Add parameter removeUIWhenStopped to startPlayerFromTrack(). (iOS only).
Error returns from iOS in FlutterSoundPlayer.m was wrong :
Flutter Sound V5 is published under the LGPL license.
New API documentation
Changed the global enums names to CamelCase, to be conform with Google recommandations
Remove the OS dependant parameters from startRecorder()
Patch to avoid problems when the App does a stopPlayer() during a startPlayer()
Error returns from iOS in FlutterSoundPlayer.m was wrong :
Fix as bug in the Focus gain, on iOS
Fix a bug in resumeRecorder() on Android : the dbPeak Stream was not restored after a resume()
Fix a bug in resumeRecorder() : the returned value was sometimes a boolean instead of a String.
Check the Initialization Status, before accessing Flutter Sound Modules
Fixes : Pausing a recording doesn't 'pause' the duration.
Fix a crash that we had when accessing the global variable AndroidActivity from BackGroundAudioSerice.java
"s.static_framework = true" in flutter_sound.podspec
Adds pedantic lints and major refactoring of example with bug fixes.
Native code is directely linked with FFmpeg. Flutter Sound App does not need any more to depends on flutter_ffmpeg and
Add a new parameter in the Track structure : albumArtFile
Trying to catch Android crash during a dirty Timer.
Trying to fix the Android crash when AndroidActivity is null
Fix a bug ('async') when the app forget to initalize its Flutter Sound module.
Codec PCM for recorder on iOS
Optional argument requestPermission before startRecorder() so that the App can control itself the recording permissions.
Fix a bug when initializing for Flutter Embedded V1 on Android
Add _removePlayerCallback, _removeRecorderCallback() and _removeDbPeakCallback() inside release()
Fix conflict with permission_handler 5.x.x
Fix README :
Change dependecies in range
The isRecording variable is false when the recorder is paused
Flutter Sound depends on permission_handler: ^4.4.0
flutter_sound modules are re-entrant and
We can open several FlutterSoundPlayer at the same time
We can open several
bugfix
Module flauto for controlling flutter_sound from the lock-screen and
Highly honor , , :tada:!
Handle custom audio path from .
Hotfix
Use AAC-LC format instead of MPEG-4
OGG/OPUS support on iOS
Resolve
stopReocorder resolve path.
Resolve
Add compatibility for android sdk 19.
Add androidx compatibility.
Resolve
Fix issue
add functions
. isEncoderSupported(t_CODEC codec);
. isDecoderSupported(t_CODEC codec);
startPlayerFromBuffer, to play from a buffer
Set android default encoding option to AAC.
Fix android default poor sound.
Resolve
Postfix GetDirectoryType to avoid conflicts
Set android recorder encoder default value to AndroidEncoder.DEFAULT.
Use NSCachesDirectory instead of NSTemporaryDirectory
Resolve
Resolve few issues on ios record path.
Resolve issue playing status so player can resume.
Resolve
Stopped recording generating infinite db values
Improved db calcs
Fixed 'mediaplayer went away with unhandled events' bug
Fixed 'mediaplayer went away with unhandled events' bug
AndroidX compatibility improved
iOS: Fixes for seekToPlayer
iOS: Setup configuration for using bluetooth microphone recording input
Android: Adds a single threaded command scheduler for all recording related
commands.
Switch source & target compability to Java 8
Bump gradle plugin version dependencies
Support db/meter
Show wrong recorder timer text
Add ability to specify Android & iOS encoder
Fixed sound distorting when playing recorded audio again. Issue .
Fixed seekToPlayer for android. Issue .
Expose recorder sampleRate
Released 1.1.0 with beautiful logo from mansa.
Improved readme.
Resolve #7.
Reimport intl which is needed to format date in Dart.
Implemented setVolume method.
Specific error messages given in android.
Manage ios player thread when audio is not loaded.
Safer handling of progressUpdate in ios when audio is invalid.
Fixed bug in platform specific code.
Fixed pug in seekToPlayer in ios.
Added license.
Released preview version for audio recorder and player.
The Flutter Sound documentation is now handled by gitbook.
Fix bug in setUIProgressBar()
The output of dartanalyzer is now clean. The pub.dev score is 110/110 !
Two new very simple examples for Flutter Sound beginners
Fix compilation errors of the examples in LITE flavor #483
Upgrade "recase" version dependency (thanks to @CRJFisher) #471
startPlayer() and startPlayerFromTrack() return a Future to the record duration instead of a void.
Flutter Sound FULL is now linked (again) with mobile-ffmpeg-audio 4.3.1.LTS. Please, look to the migration guide
Fix a concurrency bug between whenFinished() and updateProgress() #441
Android : minAndroidSdk is 18. (Tested on a SDK 18 emulator). SDK 18 is fine for the FlutterSoundPlayer, but the FlutterSoundRecorder needs at least 23. #400
New helper API verb : pcmToWave() to add a WAVE header in front of a Raw PCM record
New helper API verb : pcmToWaveBuffer() to add a WAVE header in front of a Raw PCM buffer
New helper API verb : waveToPCM() to remove a WAVE header in front of a Wave record
New helper API verb : waveToPCMBuffer() to remove a WAVE header in front of a Wave buffer
startRecorder() can now record Raw PCM Integers/Linear 16 files, both on iOS and Android (Look to a PCM discussion, here)
startplayer() can now play Raw PCM Integers/Linear 16 files, both on iOS and Android (Look to a PCM discussion, here)
Fix concurrency bug, when the App does a stopRecorder() or pauseRecorder() during recorderTicker() processing, #443
Fix a bug when we keep the device in pause mode on the iOS lock screen more than 30 seconds #451
Recording PCM-Linear 16 to a live Stream (many, many, many requesters). Here a GettingStarted notice
Playback PCM-Linear 16 from a live Stream (many, many, many requesters). Here a GettingStarted notice
seekToPlayer() #364On iOS : Add parameter defaultPauseResume to startPlayerFromTrack(). (iOS only).
On iOS : Add API verb getProgress(). (iOS only).
On iOS : Add API verb getPlayerState(). (iOS only).
On iOS : Add API verb nowPlaying(). (iOS only).
On iOS : Add API verb setUIProgressBar(). (iOS only). #376
New parameters in the SoundPlayerUI constructors for specifying colors, text style and slider style. #397
startPlayer() : the Audio Focus requestedSupport of new codecs, both for Android and iOS.
Remove the authorization request from startRecorder()
Remove the NULL posted when the player or the recorder is closed.
The Audio Focus is NOT automaticaly abandoned between two startPlayer() or two startRecorder()
A new flutter plugin is born : flutter_sound_lite #291
Adds a new parameter whenPaused: to the startPlayerFromTrack() function. #314
Fix bug for displaying a remote albumArt on Android. #290
The call to initialize() is now optional #271
README : #265
FlutterSoundRecorderAdd new API verbs : #244
flutterSoundHelper.getLastFFmpegReturnCode()
flutterSoundHelper.getLastFFmpegCommandOutput()
flutterSoundHelper.FFmpegGetMediaInformation() which return info on the given record
flutterSoundHelper.duration() which return the number of milli-seconds for the given record
Add new API verbs : ##242
FlutterSoundRecorder.pauseRecorder()
FlutterSoundRecorder.resumeRecorder()
flutter_sound is now compatible with permission_handler 5.x.x #259
API to control the audiofocus #219
API to set the audio-category (i.e. duck-others) #219
AndroidX and Android embbeded-V2 support #203
Add a parameter to startPlayer to specify a callback when the song is finished #215
License is now LGPL 3.0 instead of MIT
Improve static handler in android.
Restore default startRecorder
add property 'audioState'
check if codec is really supported before doing 'startRecorder'
modify the example app : disable buttons when the button is not compatible with the current state
in the example, add sound assets encoded with the various encoder
modify the example to play from assets
modify the example to allow selection of various codec
Resolve #95
Resolve #75
Resolve #135
Adjust db range and fix nullable check in ios #59
Android: Recording operations on a separate command queue #66
Android: Remove reference to non-AndroidX classes which improves compatibility
numChannelDo not append tmp when filePath provided in ios.
Resolve regression issue in 1.2.3 which caused in 1.2.2.
Reduce the size of audio file in 1.2.4. Related #26.
Fixed recording issue in android in 1.2.5.
Changed seekToPlayer to place exact secs instead adding it.
Fix file URI for recording and playing in iOS.
permission_handler: ">=4.0.0 <5.0.0"
flutter_ffmpeg: ">=0.2.0 <1.0.0"