audioplayer 0.8.1 audioplayer: ^0.8.1 copied to clipboard
A Flutter audio plugin (Swift/Java) to play remote or local audio files (ios, android, macos)
AudioPlayer #
A Flutter audio plugin (Swift/Java) to play remote or local audio files on iOS / Android / MacOS / Web.
Features #
- ✅ Android / iOS / MacOS / Web
- ✅ play remote file
- ✅ play local file ( not for the web)
- ✅ stop
- ✅ pause
- ✅ onComplete
- ✅ onDuration / onCurrentPosition
- ✅ seek
- ✅ mute
Usage #
To use this plugin :
- Add the dependency to your pubspec.yaml file.
dependencies:
flutter:
sdk: flutter
audioplayer: 0.8.1
audioplayer_web: 0.7.1
- Instantiate an AudioPlayer instance
//...
AudioPlayer audioPlugin = AudioPlayer();
//...
Player Controls #
audioPlayer.play(url);
audioPlayer.pause();
audioPlayer.stop();
Status and current position #
The dart part of the plugin listen for platform calls :
//...
_positionSubscription = audioPlayer.onAudioPositionChanged.listen(
(p) => setState(() => position = p)
);
_audioPlayerStateSubscription = audioPlayer.onPlayerStateChanged.listen((s) {
if (s == AudioPlayerState.PLAYING) {
setState(() => duration = audioPlayer.duration);
} else if (s == AudioPlayerState.STOPPED) {
onComplete();
setState(() {
position = duration;
});
}
}, onError: (msg) {
setState(() {
playerState = PlayerState.stopped;
duration = new Duration(seconds: 0);
position = new Duration(seconds: 0);
});
});
Do not forget to cancel all the subscriptions when the widget is disposed.
iOS #
⚠️ 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>
Background mode #
MacOS #
Add this to entitlements files ( cf. DebugProfile.entitlements )
<key>com.apple.security.network.client</key>
<true/>
Troubleshooting #
- If you get a MissingPluginException, try to
flutter build apk
on Android, orflutter build ios
Getting Started with Flutter #
For help getting started with Flutter, view our online documentation.
For help on editing plugin code, view the documentation.