3

我在使用AVPlayer.

我已经在一首 64 分钟的歌曲上对其进行了测试。

问题是:当AVPlayer缓冲区已满时,它会停止播放(速率 = 0.0f)并停止下载新的 timeRanges。当我手动恢复播放时,它会播放几秒钟然后再次停止。我认为它会继续将新内容下载到缓冲区,但这个过程非常缓慢,不适合无缝播放。

是否可以控制这种情况以实现无间隙播放?

我可以在播放期间修改加载的时间范围(清理缓冲区)吗?

我可以增加缓冲区大小吗?

4

1 回答 1

3

你在主线程上运行它吗?尝试做这样的事情:

#include <dispatch/dispatch.h>

dispatch_queue_t playQueue = dispatch_queue_create("com.example.playqueue", NULL);

AVAudioPlayer* player = ...
dispatch_async(playQueue, ^{
    [player play];
});

如果这不起作用,我建议尝试一下OpenAL

于 2012-12-14T23:30:54.037 回答