flutter 如何循环背景音频没有差距?

68bkxrlz  于 2023-01-18  发布在  Flutter
关注(0)|答案(1)|浏览(125)

bounty将在2天后过期。回答此问题可获得+100声望奖励。SePröbläm希望引起更多人关注此问题。

该应用程序会无限循环播放一些背景音频(wav)。使用just_audio包时音频播放完美无瑕,但切换到audioplayers后,所有循环音频在开始重新启动之前都会包含一小段静音。现在的问题是:如何摆脱差距?
加载和播放文件的代码非常简单:

Future<void> loadAmbient() async {
    _audioAmbient = AudioPlayer();
    await _audioAmbient!.setSource(AssetSource('audio/ambient.wav'));
    await _audioAmbient!.setReleaseMode(ReleaseMode.loop);
  }

  void playAmbient() async {
    if (PlayerState.playing != _audioAmbient?.state) {
      await _audioAmbient?.seek(Duration.zero);
      _audioAmbient?.resume();
    }
  }

根据音频播放器文档,这似乎是一个已知问题:
入门文档状态:
注意:循环播放音频时需要注意一些问题。根据文件格式和平台,当音频播放器使用“循环”功能的本地实现时,播放之间会有间隙,这在非连续SFX中可能不明显,但在循环播放歌曲时肯定会明显。请查看我们Troubleshooting Guide上的“无间隙循环”部分了解更多细节。
点击[故障排除指南](https://github.com/bluefireteam/audioplayers/blob/main/troubleshooting.md)的链接,显示:
无缝循环
根据文件格式和平台,当音频播放器使用“循环”功能的本机实现时,播放之间会有间隙,这对于非连续SFX可能不明显,但对于循环歌曲肯定会明显。
TODO(luan):在此分解备选项,低延迟模式、音频池、gapless_audioplayer、陶笛等
有趣的是Depending on the file format and platform, ...部分,听起来好像无间隙循环是可行的。问题是,怎么做?
任何想法如何让音频循环完美无瑕(iidoee.没有差距)都非常感谢。谢谢。

vohkndzv

vohkndzv1#

您可以传递此参数

_audioAmbient = AudioPlayer(mode: PlayerMode.LOW_LATENCY);

如果没有解决,你可以尝试一些新的东西,如https://pub.dev/packages/ocarina

相关问题