使用AVPlayer
时,我遇到了长歌的问题。
我已经用64分钟的歌曲进行了测试。
问题是:当AVPlayer
缓冲区已满时,它会停止播放(速率= 0.0f)并停止下载新的timeRanges。当我手动恢复播放时,它会播放几秒钟并再次停止播放。我认为它继续将新内容下载到缓冲区,但这个过程非常慢,不适合无间隙播放。
是否可以控制这种情况以实现无间隙播放?
我可以在播放期间修改加载的时间范围(清理缓冲区)吗?
我可以增加缓冲区大小吗?
答案 0 :(得分:3)
你是在主线程上运行吗?尝试做这样的事情:
#include <dispatch/dispatch.h>
dispatch_queue_t playQueue = dispatch_queue_create("com.example.playqueue", NULL);
AVAudioPlayer* player = ...
dispatch_async(playQueue, ^{
[player play];
});
如果这不起作用,我建议您尝试OpenAL。