AudioPlayer
A Flutter audio plugin (ObjC/Java) to play remote or local audio files
Features
-
Android & iOS
- play (remote and local file)
- stop
- pause
- seek
- onComplete
- onDuration / onCurrentPosition
-
Supported formats
Usage
To use this plugin :
- add the dependency to your pubspec.yaml file.
dependencies:
flutter:
sdk: flutter
audioplayer:
- instantiate an AudioPlayer instance
//...
AudioPlayer audioPlayer = new AudioPlayer();
//...
play, pause , stop, seek
play() async {
final result = await audioPlayer.play(kUrl);
if (result == 1) setState(() => playerState = PlayerState.playing);
}
// add a isLocal parameter to play a local file
playLocal() async {
final result = await audioPlayer.play(kUrl);
if (result == 1) setState(() => playerState = PlayerState.playing);
}
pause() async {
final result = await audioPlayer.pause();
if (result == 1) setState(() => playerState = PlayerState.paused);
}
stop() async {
final result = await audioPlayer.stop();
if (result == 1) setState(() => playerState = PlayerState.stopped);
}
// seek 5 seconds from the beginning
audioPlayer.seek(5.0);
duration, position, complete, error (temporary api)
The Dart part of the plugin listen for platform calls :
//...
audioPlayer.setDurationHandler((Duration d) => setState(() {
duration = d;
}));
audioPlayer.setPositionHandler((Duration p) => setState(() {
position = p;
}));
audioPlayer.setCompletionHandler(() {
onComplete();
setState(() {
position = duration;
});
});
audioPlayer.setErrorHandler((msg) {
print('audioPlayer error : $msg');
setState(() {
playerState = PlayerState.stopped;
duration = new Duration(seconds: 0);
position = new Duration(seconds: 0);
});
});
iOS
⚠️ Swift project
~~this plugin is written in swift, so to use with in a Flutter/ObjC project, you need to convert the project to "Current swift syntax" ( Edit/Convert/current swift syntax)~
⚠️ iOS App Transport Security
By default iOS forbids loading from non-https url. To cancel this restriction edit your .plist and add :
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Getting Started
For help getting started with Flutter, view our online documentation.
For help on editing plugin code, view the documentation.