颤动音频播放延迟 [英] flutter audio play delay

查看:14
本文介绍了颤动音频播放延迟的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用audioplayers package播放我存储在Firebase云存储中的mp3音频文件。安卓和iOS都有明显的延迟,安卓的速度只略快一些。此后,我已将所有音频声音文件移动到本地资产。

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,解决了first original PR的几个缺点。两者都合并到audioplayers的主分支中。

我的PR更改为:

  • playbackRate始终在playImmediatelyAtRate中使用,而不是常量值--由库初始设置为_defaultPlaybackRate,即1.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已经合并,second PR也是。

原创评论:

this打开的拉取请求应该会修复iOS上的延迟。这还没有达到发布版本。还有this关于初始滞后较大的讨论。

这篇关于颤动音频播放延迟的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆