我正在开发一个应用程序,我需要在其中流式传输大量的音频文件,每个文件的范围为5到15秒。 我想尽可能减少文件之间的加载时间。
主要问题: 有没有办法在当前播放最后一段时开始缓冲下一个文件(通过HLS)?
AVQueuePlayer在iOS方面是否适用于此?
我将非常感谢详细解释,因为我是HTTP Live Streaming和AV Foundation的新手。
相关问题: 广播应用如何在歌曲之间没有延迟地传输音频?
答案 0 :(得分:1)
是的,AVQueuePlayer
是播放通过HTTP协议从互联网流式传输的音频序列的合适解决方案。
我现在使用AVQueuePlayer
已经有一段时间了,效果非常好而且歌曲之间没有滞后。以下是有关如何使用AVQueuePlayer
的简单示例:
NSURL *url1 = [NSURL URLWithString:[urlsToPlay objectAtIndex:0]];
NSURL *url2 = [NSURL URLWithString:[urlsToPlay objectAtIndex:1]];
NSURL *url3 = [NSURL URLWithString:[urlsToPlay objectAtIndex:2]];
self.item1 = [[AVPlayerItem alloc] initWithURL:url1];
self.item2 = [[AVPlayerItem alloc] initWithURL:url2];
self.item3 = [[AVPlayerItem alloc] initWithURL:url3];
self.radioPlayerURLs = [[NSArray alloc] initWithObjects:self.item1,self.item2, self.item3, nil];
self.onDemandPlayer = [AVQueuePlayer queuePlayerWithItems:self.radioPlayerURLs];
[self.onDemandPlayer play];
有关详细信息,请参阅Apple文档: