2

我正在开发一个应用程序,我需要在其中流式传输大量音频文件,每个文件的时间从 5 到 15 秒不等。我想尽可能减少文件之间的加载时间。

主要问题: 有没有办法在当前文件播放最后一段时开始缓冲下一个文件(通过 HLS)?

AVQueuePlayer 在 iOS 端是一个合适的解决方案吗?

非常感谢详细的解释,因为我是 HTTP Live Streaming 和 AV Foundation 的新手。

相关问题:广播应用程序如何在歌曲之间没有延迟的情况下流式传输音频?

4

1 回答 1

1

是的,AVQueuePlayer是播放通过 HTTP 协议从 Internet 流式传输的音频序列的合适解决方案。

我现在使用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 文档:

AV基金会

AV队列播放器

于 2013-04-25T14:21:15.237 回答