我正在尝试开发一个跨平台应用程序,用于播放戏剧目的的音频,我可以播放音频,但我无法阻止它。我的
AudioPlayback (audio_playback.dart)
对象中的代码如下,用于从 AudioPlayer
停止 just_audio
:
Future<void> stopAudio() async {
debugPrint("Stopping audio playback");
await player.stop();
}
我从与主体小部件不同的小部件调用停止,但我认为这不应该是一个问题。
这是我的
stop button
代码的链接:https://github.com/bgoldstone/cue_go/blob/main/lib/cue_widgets/playback_bar.dart
停止功能从第 123 行开始,这是应用程序中的
playback bar
。
我尝试将停止包装在
cue_list.dart
setState 函数中并使用 async
await
和 then
看起来你用回调弄乱了一些东西
final void Function(void Function()) cueListState;
当您点击
IconButton
并且回调 onPressed
起作用时,在这些行中:
widget.cueListState(() {
if (cue.player.isPlaying()) {
cue.player.stopAudio();
}
});
你只需使用以下代码在顶部抛出一个函数:
() {
if (cue.player.isPlaying()) {
cue.player.stopAudio();
}
}
但你不调用这段代码:
if (cue.player.isPlaying()) {
cue.player.stopAudio();
}
试试这个:
onPressed: () {
for (Cue cue in widget.cues) {
debugPrint(
'Cue ${cue.name} ${cue.player.isPlaying()} Playing: ${cue.player.isPlaying()}');
****************
if (cue.player.isPlaying()) {
cue.player.stopAudio();
}
***************
debugPrint("stopped cue: ${cue.cueNumber}");
debugPrint("Cue playing: ${cue.player.isPlaying()}");
}
},