颤振音频播放延迟

flutter audio play delay

我正在使用 audioplayers package 播放存储在 firebase 云存储中的 mp3 音频文件。 Android 和 iOS 都有明显的延迟,而 Android 只是稍微快一点。我已经将我所有的音频声音文件移动到本地资产。

AudioPlayer audioPlayer = AudioPlayer(mode: PlayerMode.LOW_LATENCY);

play(String url) async {
int result = await audioPlayer.play(url);

if (result == 1) {
  // success
  print('success');
 }
}

就在几天前,我在 iOS Swift 中使用音频播放器进行了测试,并从 firebase 云存储中播放了一些音频文件,但由于缓冲和速度快多了。

我需要找到解决此问题的方法,因为我有很多音频文件并且需要将它们存储在网络中。大家有没有遇到过类似的问题,有什么好的建议吗?

更新

做了这个second PR that addresses few shortcomings of the first original PR. Both are merged into master branch of audioplayers

我的 PR 变化是:

  • playbackRate 总是在 playImmediatelyAtRate 中使用而不是常数值——最初由库设置为 _defaultPlaybackRate1.0
  • playImmediatelyAtRate 也被添加到 resume 方法中,而不仅仅是 play

原解

这是帮助解决 OP 音频播放延迟问题的最终代码:

play & resume 方法中

AVPlayer *player = playerInfo[@"player"];

float playbackRate = [playerInfo[@"rate"] floatValue];

if (@available(iOS 10.0, *)) {
    [player playImmediatelyAtRate:playbackRate];
} else {
    [player play];
}

所以调用 [player playImmediatelyAtRate:playImmediatelyAtRate:playbackRate] 而不是 [player play]; 似乎可以解决问题。

到目前为止,它还没有被合并到酒吧中,仍然是一个开放的 first incomplete PR has been merged, second PR

原评论:

this open pull request that should fix delay on iOS. that hasn't reached release version. Also there's this 讨论了大的初始滞后。