Flutter 在flatter中播放音频文件
嘿,我想要我的应用程序背景音乐,因为我需要知道,如何在颤振中播放音频文件,我已经导入了许多Adio软件包,但没有人真正工作,我是颤振游戏xD的新手,如果可能的话,它应该是短命令,我需要一个android应用程序。我希望有人能帮助我,谢谢你的帮助Flutter 在flatter中播放音频文件,flutter,dart,audio,Flutter,Dart,Audio,嘿,我想要我的应用程序背景音乐,因为我需要知道,如何在颤振中播放音频文件,我已经导入了许多Adio软件包,但没有人真正工作,我是颤振游戏xD的新手,如果可能的话,它应该是短命令,我需要一个android应用程序。我希望有人能帮助我,谢谢你的帮助 我的处境和你一样。而且音频很难(所以要做好准备)。 在^4天的工作之后,我确实让我的背景音乐开始工作(很抱歉回答得太长了,但这是必须的)。希望你不会花那么长时间: 首先,您需要向应用程序添加音频播放器: import 'package:audioplay
我的处境和你一样。而且音频很难(所以要做好准备)。 在^4天的工作之后,我确实让我的背景音乐开始工作(很抱歉回答得太长了,但这是必须的)。希望你不会花那么长时间: 首先,您需要向应用程序添加音频播放器:
import 'package:audioplayers/audio_cache.dart';
import 'package:audioplayers/audioplayers.dart';
在播放音频的页面中导入这些内容(我建议从主页(main.dart)播放背景音乐)
然后在类状态下,您需要创建音频播放器和音频缓存,如下所示:
要阻止它,请拨打:
player.stop();
如果你想让音乐从应用程序打开的那一点开始,用WillPopScope将支架包裹起来,如下所示:
Future\u willPopCallback()异步{
player=wait cache.loop('assets/yourMusicFileHere');
返回true;
}
推翻
小部件构建(构建上下文){
return-WillPopScope(onWillPop:_-willPopCallback,child:newscaffold([…]))
}
请随时给我发送任何错误,我将在stackOverFlow每天多次,所以我会回答。
我想我在这篇评论中得到了一切,但可能遗漏了一些东西,所以一定要告诉我;)
编辑: 我刚刚意识到我犯了一个错误,我说WillPopScope可以在应用程序启动时用来启动音乐,这不是真的,WillPopScope是为你离开页面时准备的。因此,当用户离开应用程序时,它可以用来停止音乐 现在,为了让音乐在应用程序打开时启动,我们必须在构建小部件树时调用一个函数,如下所示:
Future<bool> _willPopCallback() async {
player.stop(); //change this
return true;
}
openingActions() async { //add this
player = await cache.loop('assets/yourMusicFileHere.mp3'); //add this
} //add this
@override
Widget build(BuildContext context) {
openingActions();
return WillPopScope(onWillPop: _willPopCallback, child: new Scaffold( [...] )
Future\u willPopCallback()异步{
player.stop();//更改此设置
返回true;
}
openingActions()异步{//添加此
player=wait cache.loop('assets/yourMusicFileHere.mp3');//添加此
}//添加这个
@凌驾
小部件构建(构建上下文){
openingActions();
return-WillPopScope(onWillPop:_-willPopCallback,child:newscaffold([…]))
您可能会遇到播放两次音乐的问题,然后需要在播放音乐时添加安全检查,如下所示:
bool isPlaying = false;
Future<bool> _willPopCallback() async { //change this whole thing
if(isPlaying == false) {
setState(() {
isPlaying = true;
});
player.stop();
}
return true;
}
bool显示=false;
Future _willPopCallback()async{//改变这一切
如果(显示==假){
设置状态((){
isplay=true;
});
player.stop();
}
返回true;
}
- 谢谢-托拜厄斯
Future<bool> _willPopCallback() async {
player = await cache.loop('assets/yourMusicFileHere');
return true;
}
override
Widget build(BuildContext context) {
return WillPopScope(onWillPop: _willPopCallback, child: new Scaffold( [...] )
}
Future<bool> _willPopCallback() async {
player.stop(); //change this
return true;
}
openingActions() async { //add this
player = await cache.loop('assets/yourMusicFileHere.mp3'); //add this
} //add this
@override
Widget build(BuildContext context) {
openingActions();
return WillPopScope(onWillPop: _willPopCallback, child: new Scaffold( [...] )
bool isPlaying = false;
Future<bool> _willPopCallback() async { //change this whole thing
if(isPlaying == false) {
setState(() {
isPlaying = true;
});
player.stop();
}
return true;
}