A cross-platform solution for playing audio in Flutter.
This project's goal is to be as simple as possible, meaning it offers the core functionality only (ex. play/pause). It also aims to be stable and relatively bug free.
I created this plugin for my music app so that I don't have to use different packages for different platforms (audio_service, dart_vlc). This made it hard to deal with bugs from different packages.
- Simple API
- Cross platform (Android, Linux, Windows, iOS, macOS)
- Playback of local and online resources
- Gapless playback and preloading
- Volume normalization
The documentation is hosted by pub.dev. You can find it here.
- Add this plugin as a dependency in
pubspec.yaml - Follow the setup steps.
- Call
SimpleAudio.init()inmain()(see below). - Instantiate a
SimpleAudioobject in your player controller (see below). - Use the APIs provided in the instantiated object (see below).
An example player project is located here.
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await SimpleAudio.init();
runApp(const MyApp());
}final SimpleAudio player = SimpleAudio(shouldNormalizeVolume: false);player.playbackState.listen((state) => print(state));
player.progressState.listen((state) => print(state));
// Autoplays by default
player.open(path);Some platform specific things have to be set up in order for this plugin to function properly.
No setup is needed.
You will have to add a dependency to your Xcode project.
- Open
Runner.xcworkspacein theiosfolder. - At the top of your project hierarchy view, select the
Runnerproject. - Select the
Runnertarget, go to theGeneraltab and scroll down until you seeFrameworks, Libraries, Embedded Content - Press the
+icon and add theAudioToolbox.frameworkframework. SelectDo Not Embedunder theEmbedcolumn.
- sanihaq - Reported multiple bugs in
simple_audio's first releases. These bugs would not have been fixed for a long time without their help.