Flutter just_音频停止/暂停功能不适用于我的应用程序

问题描述 投票:0回答:1

我正在尝试开发一个跨平台应用程序,用于播放戏剧目的的音频,我可以播放音频,但我无法阻止它。我的

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

flutter dart audio just-audio
1个回答
0
投票

看起来你用回调弄乱了一些东西

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()}");
          }
        },
© www.soinside.com 2019 - 2024. All rights reserved.