Simple Audio
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.
Features
- Simple API
- Cross platform (Android, Linux, Windows, iOS, macOS)
- Playback of local and online resources
- Gapless playback and preloading
- Volume normalization
Documentation
The documentation is hosted by pub.dev
. You can find it here.
Usage
- Add this plugin as a dependency in
pubspec.yaml
- Follow the setup steps.
- Call
SimpleAudio.init()
inmain()
(see below). - Instantiate a
SimpleAudio
object in your player controller (see below). - Use the APIs provided in the instantiated object (see below).
An example player project is located here.
Initialization
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await SimpleAudio.init();
runApp(const MyApp());
}
Create Player
final SimpleAudio player = SimpleAudio(shouldNormalizeVolume: false);
Open and Play
player.playbackState.listen((state) => print(state));
player.progressState.listen((state) => print(state));
// Autoplays by default
player.open(path);
Setup
Some platform specific things have to be set up in order for this plugin to function properly.
Windows, Linux, macOS, Android
No setup is needed.
iOS
You will have to add a dependency to your Xcode project.
- Open
Runner.xcworkspace
in theios
folder. - At the top of your project hierarchy view, select the
Runner
project. - Select the
Runner
target, go to theGeneral
tab and scroll down until you seeFrameworks, Libraries, Embedded Content
- Press the
+
icon and add theAudioToolbox.framework
framework. SelectDo Not Embed
under theEmbed
column.
Special Thanks
- sanihaq - Reported multiple bugs in
simple_audio
's first releases. These bugs would not have been fixed for a long time without their help.