【问题标题】:Flutter: How to stop multiple sounds using AudioPlayersFlutter:如何使用 AudioPlayers 停止多个声音
【发布时间】:2021-01-04 05:17:35
【问题描述】:

我编写了一个程序,可以同时播放 3 种不同的声音。还有一个停止按钮,当用户点击它时,所有的声音都必须停止。

  AudioCache playerCache = new AudioCache(); 
  AudioPlayer player = new AudioPlayer();

  void _playFile(String yol) async {
    player = await playerCache.play(yol);
  }

  void cancelPlay() {
    player.stop();
    player.stop();
  }

但是当 cancelPlay 方法执行时,它只会停止最后一个声音。如何一次停止所有这些?

【问题讨论】:

  • 你用的是哪个包?
  • 音频播放器包。 pub.dev/packages/audioplayers
  • 所有文件都在使用同一个AudioPlayer 实例播放?
  • 每次通过_playFile 播放文件时,都会破坏现有的player 变量。相反,您可能应该保留 Set<AudioPlayer> 来跟踪所有未完成的播放操作(并在它们完成播放或被取消时删除条目)。

标签: flutter dart


【解决方案1】:

不要更改_playFile函数中AudioPlayer实例的内容。只需像这样调用方法play()

void _playFile(String yol) async {
  await playerCache.play(yol);
  // Do not use player = await playerCache.play(yol);
}

因此,当您调用player.stop(); 时,它将停止所有播放文件

【讨论】:

    猜你喜欢
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多