migration
Migration from previous version
Migration form 5.x.x to 6.x.x
Flutter Sound 6.0 FULL flavor is now linked with
mobile-ffmpeg-audio 4.3.1.LTSFlutter Sound 6.2 is linked with flutter_sound_interface 2.0.0
Flutter Sound 6.2 is linked with the Pod TauEngine 1.0.0
You must delete the file ios/Pofile.lock in your App directory and execute the command :
pod cache clean --all
pod install --repo-updateMigration form 4.x.x to 5.x.x
Several changes are necessary to migrate from 4.x.x :
Imports
To be compliant with Google recommandations, Flutter Sound has now a main dart file that the App must import : flutter_sound.dart. This file is just a list of "exports" from the various dart files present in the "src" sub-directory.
Global enums and Function types
Global enums are renamed to be compliant with the Google CamelCase recommandations :
t_CODECSis renamedCodec. TheCodecvalues are LowerCase, followed by the File Format in Uppercase when there is ambiguity :aacADTS
opusOGG
opusCAF
mp3
vorbisOGG
pcm16
pcm16WAV
pcm16AIFF
pcm16CAF
flac
aacMP4
The Player State is renamed
PlayerStateThe Recorder State is renamed
RecorderStateThe iOS Session Category is renamed
SessionCategoryThe iOS Session Mode is rename
SessionModeThe Android Focus Gain is renamed
AndroidFocusGain
Flutter Sound does not manage any more the recording permissions.
Now this is the App responsability to request the Recording permission if needed. This change was necessary for several reasons :
Several App want to manage themselves the permission
We had some problems with the Flutter Android Embedded V2
We had problems when Flutter Sound uses permission_handler 4.x and the App needs permission_handler 5.x
We had problems when Flutter Sound uses permission_handler 5.x and the App needs permission_handler 4.x
This is not Flutter Sound role to do UI interface
The parameter requestPermission is removed from the startRecorder() parameters. The permission_handler dependency is removed from Flutter Sound pubspec.yaml
The StartRecorder() "path" parameter is now mandatory
Flutter Sound does not create anymore files without the App specifying its path. This was a legacy parameter. The first versions of Flutter Sound created files on the SD-card volume. This was really bad for many reasons and later versions of Flutter Sound stored its files in a temporary directory.
Flutter Sound Version 5.x.x does not try any more to store files in a temporary directory by itself. Thanks to that, Flutter Sound does not have any more a dependency to path_provider. It is now the App responsability to depend on path_provider if it wants to access the Temporary Storage.
StartRecorder() OS specific parameters are removed
We removed OS specific parameters passed during startRecorder() :
AndroidEncoder
AndroidAudioSource
AndroidOutputFormat
IosQuality
Flutter Sound does not post NULL to Player and Recorder subscriptions.
NULL to Player and Recorder subscriptions.This NULL parameter sent when the Recorder or the Player was closed was ugly, and caused many bugs to some Apps.
The Audio Focus is not automaticaly abandoned between two startPlayer() or two startRecorder()
The Audio Focus is just abandoned automaticaly when the App does a release()
Some verbs are renamed :
The ancient verb
setActiveis now replaced bysetAudioFocusinitialized()andrelease()are renameopenAudioSession()andcloseAudioSession())
openAudioSessionWithUI
openAudioSessionWithUI is a new verb to open an Audio Session if the App wants to be controlled from the lock-screen. This replace the module TrackPlayer which does not exists anymore.
Migration from 3.x.x to 4.x.x
There is no changes in the 4.x.x version API. But some modifications are necessary in your configuration files
The FULL flavor of Flutter Sound makes use of flutter_ffmpeg. In contrary to Flutter Sound Version 3.x.x, in Version 4.0.x your App can be built without any Flutter-FFmpeg dependency.
If you come from Flutter Sound Version 3.x.x, you must :
Remove this dependency from your
pubspec.yaml.You must also delete the line
ext.flutterFFmpegPackage = 'audio-lts'from yourandroid/build.gradleAnd the special line
pod name+'/audio-lts', :path => File.join(symlink, 'ios')in your Podfile.
If you do not do that, you will have duplicates modules during your App building.
flutter_ffmpeg audio-lts is now embedding inside the FULL flavor of Flutter Sound. If your App needs to use FFmpeg, you must use the embedded version inside flutter_sound instead of adding a new dependency in your pubspec.yaml.
Last updated
Was this helpful?