Documention is switched to Jekyll
The two simple examples doing recording did not ask for recording permission. #539
iOS : Rename AudioPlayer
as AudioPlayerFlauto
to avoid duplicate symbol with "just_audio: ^0.5.7". #542
The two simple examples doing recording did not ask for recording permission. #539
Fixes a bug in setAudioFocus()
when the focus parameter is t_AUDIO_FOCUS.requestFocus
#537
Fixes an other problem in setAudioFocus()
on Android and iOS #535
Fixes a crash in setAudioFocus()
on Android #535
The documentation of the API is now generated by dartdoc
. Here it is
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
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
Syntaxe error in flutter_sound_web.podspec #509
Little mistake in the Podspec file name for flutter_sound_web #509
Flutter Sound is supported by Flutter Web. You can play with this live demo on the web (still cannot record with Safari or any web browser on iOS : thank you Apple). You can read this. Issues : #494, #468 and #297
Fix a syntax error in the TauEngine build.gradle 499
English in the UI widget is now configurable 498
On Android : Flutter Sound is now a wrapper around TauEngine
Add a new example doing Speech-To-Text. Thanks to @jtkeyva :-) . #210
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)
Fix compilation errors of the examples in LITE flavor #483
Playback from a remote URL #470
Volume control with the volume buttons, on Android. #457
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.
Upgrade "recase" version dependency (thanks to @CRJFisher) #471
Little bug in the Demo App : 48000 is not a valid Sample rate for AAC/ADTS #460
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. #425
On iOS, the device did not go to sleep when idle, with the Flutter Sound default parameters. #439
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
Fix various bugs in UI Widget #407
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 #374
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).
On iOS : the "NowPlaying" progress bar on the lockscreen is uptodated when the App does a seekToPlayer()
#364
On 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
Error returns from iOS in FlutterSoundPlayer.m was wrong : #350
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()
Add a new parameter to startPlayer()
: the Audio Focus requested
Support 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()
Patch to avoid problems when the App does a stopPlayer()
during a startPlayer()
#374
Error returns from iOS in FlutterSoundPlayer.m was wrong : #350
Fix as bug in the Focus gain, on iOS #324
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 #307
Fixes : Pausing a recording doesn't 'pause' the duration. #278
Fix a crash that we had when accessing the global variable AndroidActivity from BackGroundAudioSerice.java
#317
"s.static_framework = true" in flutter_sound.podspec
Adds pedantic lints and major refactoring of example with bug fixes. #279
Add a new parameter in the Track structure : albumArtFile
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
Trying to catch Android crash during a dirty Timer. #289
Trying to fix the Android crash when AndroidActivity is null #296
Fix a bug ('async') when the app forget to initalize its Flutter Sound module. #287
Codec PCM for recorder on iOS
Optional argument requestPermission
before startRecorder()
so that the App can control itself the recording permissions. #283
Fix a bug when initializing for Flutter Embedded V1 on Android #267
Add _removePlayerCallback, _removeRecorderCallback() and _removeDbPeakCallback() inside release() #248
Fix conflict with permission_handler 5.x.x #274
The call to initialize()
is now optional #271
README : #265
Fix README : #268
Change dependecies in range
The isRecording
variable is false when the recorder is paused #266
Flutter Sound depends on permission_handler: ^4.4.0 #263
Add 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
bugfix #254
Module flauto
for controlling flutter_sound from the lock-screen 219 and #243
Highly honor Larpoux, bsutton, salvatore373 :tada:!
Handle custom audio path from path_provider.
OGG/OPUS support on iOS #199
Add compatibility for android sdk 19.
Add androidx
compatibility.
Resolve #193
Restore default startRecorder
Fix issue #175
add functions
. isEncoderSupported(t_CODEC codec);
. isDecoderSupported(t_CODEC codec);
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
startPlayerFromBuffer, to play from a buffer #170
Set android default encoding option to AAC
.
Postfix GetDirectoryType
to avoid conflicts #147
Set android recorder encoder default value to AndroidEncoder.DEFAULT
.
Use NSCachesDirectory
instead of NSTemporaryDirectory
#141
Resolve #129
Resolve few issues on ios
record path.
Resolve issue playing
status so player can resume.
Resolve #134
Resolve #135
Stopped recording generating infinite db values #131
Improved db calcs #123
Fixed 'mediaplayer went away with unhandled events' bug #104
Fixed 'mediaplayer went away with unhandled events' bug #83
AndroidX compatibility improved #68
iOS: Fixes for seekToPlayer #72
iOS: Setup configuration for using bluetooth microphone recording input #73
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 #41
Show wrong recorder timer text #47
Add ability to specify Android & iOS encoder #49
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
Fixed sound distorting when playing recorded audio again. Issue #14.
Fixed seekToPlayer
for android. Issue #10.
Expose recorder sampleRate
and numChannel
.
Do 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.
Released 1.1.0 with beautiful logo from mansa.
Improved readme.
Resolve #7.
Fixed missing break in switch statement.
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
.