使用第三方插件实现音频播放,支持安卓、IOS
先上官网链接:
https://pub.dev/packages/audioplayers
安装
根目录打开 pubspec.yaml
找到dependencies, 添加
audioplayers: ^0.13.1
控制台:(有些编辑器会自动帮你安装)
flutter pub get
使用
引用
import 'package:audioplayers/audioplayers.dart';
初始化
AudioPlayer audioPlayer = AudioPlayer();
播放
play() async {
int result = await audioPlayer.play(xxx.mp3);
if (result == 1) {
// success
print('play success');
} else {
print('play failed');
}
}
暂停
pause() async {
int result = await audioPlayer.pause();
if (result == 1) {
// success
print('pause success');
} else {
print('pause failed');
}
}
转跳
int result = await audioPlayer.seek(new Duration(milliseconds: startMilliseconds));
if (result == 1) {
print('go to success');
// await audioPlayer.resume();
} else {
print('go to failed');
}
播放中监听
audioPlayer.onAudioPositionChanged.listen((p) async {
// p参数可以获取当前进度,也是可以调整的,比如p.inMilliseconds
})
milliseconds参数可以调整的,请注意这个部分,不然发现一转头就没声音,要设置好哦。
一般我只用到这些,更多请看官网。
TIPS
请不要在build
函数里面声明变量。在initState中初始化,参考:
@override
void initState() {
super.initState();
initAudioPlayer();
}
void initAudioPlayer() {
audioPlayer = new AudioPlayer();
_positionSubscription =
audioPlayer.onAudioPositionChanged.listen((p) async {
if (!pickItem.containsKey('end')) {
return;
}
...
flutter pub get
的时候
如果你遇到了如下错误
"flutter run" prints warning multiple times after switching Flutter SDK's
请运行如下命令
flutter packages upgrade
如果你运行这个的时候出现
Waiting for another flutter command to release the startup lock
请切换到flutter安装目录下,运行
rm ./bin/cache/lockfile
然后再次执行
flutter packages upgrade
问题将解决。
--END--
网友评论