gpt4 book ai didi

ios - 通过 HTTP 流式传输 AAC 音频时的 AVPlayer 延迟

转载 作者:行者123 更新时间:2023-12-01 18:12:07 24 4
gpt4 key购买 nike

我正在使用 AVPlayer 通过 HTTP 从外部服务器流式传输 AAC 音频,如下所示:

AVPlayer *player = [[AVPlayer alloc] initWithURL:[NSURL URLWithString:myStreamURL]];
[player play];

这种方法有效(它确实播放音频),但不是我希望它工作的方式。问题是调用播放方法后有很长的延迟(30 秒),然后我必须等待 30 秒,看着状态栏上旋转的“下载轮”,音频播放正常,但总是在这个延迟之后,而不是早些时候。

我认为它实际上是下载音频,然后播放而不是流式传输。

到目前为止,我还没有想出如何解决这个问题,所以任何帮助将不胜感激。

提前致谢。

最佳答案

这取决于音频服务器,但我对 AVPlayer 所做的是观察 player.currentItem.status KVO 的属性(property)。当它变成 AVPlayerItemStatusReadyToPlay , 调用 prerollAtRate .然后开始在其完成处理程序中播放。

[player prerollAtRate:1.0 completionHandler:^(BOOL finished){
if (finished) {
[player play];
}
}];

无论如何,首先建议观察 "status" , "currentItem.status""currentItem.loadedTimeRanges" AVPlayer 实例上的关键路径,并记录它们何时以及如何更改。你会看到哪个部分需要很长时间。

关于ios - 通过 HTTP 流式传输 AAC 音频时的 AVPlayer 延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28838577/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com