有没有办法循环 soundpool 音轨颤振包?

时间:2021-01-04 09:21:08

标签: flutter flutter-dependencies

我正在使用 Flutter 创建一个音乐应用程序,我正在使用 soundpool 包。我想知道除此之外是否还有其他方法可以循环播放配乐:

app

使用break,声音不会立即停止,而是会在曲目播放完后停止。

我尝试用 pool.stop(soundStreamId)pool.pause(soundStreamId) 替换 break 但它给了我这个错误:

while (true) {
  soundStreamId = await pool.play(soundId);
  print("Loopin");
  if (status == false) {
    break;
  }
}

请指教。谢谢!

1 个答案:

答案 0 :(得分:1)

是的,我需要一个类似的东西并找到了这个包:

https://pub.dev/packages/just_audio

它有循环:

循环和洗牌:

await player.setLoopMode(LoopMode.off); // no looping (default)
await player.setLoopMode(LoopMode.all); // loop playlist
await player.setLoopMode(LoopMode.one); // loop current item
await player.setShuffleModeEnabled(true); // shuffle playlist

播放列表的偶数循环:

player.setAudioSource(
  // Loop child 4 times
  LoopingAudioSource(
    count: 4,
    // Play children one after the other
    child: ConcatenatingAudioSource(
      children: [
        // Play a regular media file
        ProgressiveAudioSource(Uri.parse("https://example.com/foo.mp3")),
        // Play a DASH stream
        DashAudioSource(Uri.parse("https://example.com/audio.mdp")),
        // Play an HLS stream
        HlsAudioSource(Uri.parse("https://example.com/audio.m3u8")),
        // Play a segment of the child
        ClippingAudioSource(
          child: ProgressiveAudioSource(Uri.parse("https://w.xyz/p.mp3")),
          start: Duration(seconds: 25),
          end: Duration(seconds: 30),
        ),
      ],
    ),
  ),
);