Flutter Sound
This plugin provides simple recorder and player functionalities for both Android and iOS platforms.
Features
- Play and Record sounds or music with various codecs. (See the supported codecs here)
- Play local or remote files specified by their URL.
- The App playback can be controled from the device lock screen or from an Apple watch
- Handle playback stream from native (To sync exact time with bridging). [Not sure to understand what it means!]
Flutter Sound branches
We actually maintain two branches for Flutter Sound :
- The V4 branch (the version ^4.0.0)
- The master branch (actually the version ^5.0.0)
We do not expect that everybody will switch today from 4.x.x to 5.x.x.
V4 is our stable branch, and will be maintained as long as everybody will not have switch to V5 : in other words V4 is our LTS version (Long Term Support).
Migration Guides
- To migrate to 4.x.x from 3.x.x you must do some minor changes in your configurations files.
- To migrate to 5.x.x from 4.x.x you must do a few changes in your App.
Free Read
Medium Blog. [This link is probably obsolete!]
SDK requirements
- Flutter Sound requires an iOS 9.3 SDK (or later)
- Flutter Sound requires an Android 24 (or later)
Installation
Here is a guide for Flutter Sound installation
Flutter Sound API
Flutter Sound is composed with 4 modules :
- FlutterSoundPlayer, wich deal with everything about playbacks
- FlutterSoudRecorder, which deal with everything about recording
- FlutterSoundHelper, which offers some convenients tools
- FlutterSoundUI, which offer some Widget ready to be used out of the box
To use Flutter Sound you just do :
import 'package:flutter_sound/flutter_sound.dart';
This will export all the necessaries dart interfaces.
Examples (Demo Apps)
Flutter Sound comes with two Demo/Examples :
- Demo1 app is a small demonstration of what we can do with Flutter Sound. This Demo App is a kind of exerciser which try to implement the major Flutter Sound features. This Demo does not use the Flutter Sound UI Widgets
- Demo2 app is an example of what can be done using the Flutter Sound UI Widgets
License
Flutter Sound is copyrighted by Dooboolab (2018, 2019, 2020) Flutter Sound is released under a license with a copyleft clause: the LGPL-V3 license. This means that if you modify some of Flutter Sound code you must be publish your modifications under the LGPL license too.
Contributions
Flutter Sound is a free and Open Source project. Several contributors have already contributed to Flutter Sound. Specially :
- @hyochan who is the Flutter Sound father
- @salvatore373 who wrote the Track Player
- @bsutton who wrote the UI Widgets
- @larpoux who add several codec supports
We really need your contributions. Pull Requests are welcome and will be considered very carefully.
Bugs, Features Requests, documentation inaccurate, help needed, …
We use Github actively.
When you fill an issue, we try to answer something in less than 48h. Of course, this will not mean that your issue will be fixed in 48h. But you will know that we confirm (or not) your issue and what answer you can expect. Maintenance is our priority. We try to make it perfect.
TODO
- Record and playback raw PCM both on Android and iOS
- Record OPUS on Android
- Record MP3 both on Android and iOS
- Record raw PCM to a Dart Stream instead of a file
- Playback raw PCM from a Dart Stream instead of a file
- Streaming records to Speech to Text
- More support for the Apple Watch
- Tests unit to avoid any regression
- Flutter Web App support
- Flutter Sound port to React Native
- Better UI Widget
- Lock screen control between two sounds.
Download Flutter Sound Plugin Source code on GitHub
Provides the list of the opensource Flutter apps collection with GitHub repository.