颤振音频播放延迟
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
中使用而不是常数值——最初由库设置为 _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 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 讨论了大的初始滞后。
我正在使用 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
中使用而不是常数值——最初由库设置为_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 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 讨论了大的初始滞后。