按顺序播放多个音频文件

luc*_*ano 5 iphone audio ios

我正在尝试实现一个音频播放器来播放多个文件,就像它们是单个文件一样.但是,初始缓冲时间应该只是第一部分的持续时间,其他文件应该按顺序加载.

例如:

  • 文件1:
    • 第1部分 - 0:35s
    • Part2 - 0:47s
    • 第3部分 - 0:07s

File1应该像1:29一样播放,但我们只等待(最多),直到Part1加载开始播放.

我看过AVAsset,但它似乎没有解决问题.我还想过使用AVAudioPlayer实现它并自己完成所有逻辑.

以前有人有这个问题吗?

谢谢!

Mid*_* MP 3

您可以使用AVQueuePlayer来实现此目的。您需要AVPlayerItem使用文件 url 创建,然后需要AVQueuePlayer使用它的queuePlayerWithItems:方法进行初始化。

AVPlayerItem *firstItem  = [[AVPlayerItem alloc] initWithURL:firstPartURL];
AVPlayerItem *secondItem = [[AVPlayerItem alloc] initWithURL:secondPartURL];
AVPlayerItem *thirdItem  = [[AVPlayerItem alloc] initWithURL:thirdPartURL];    

NSArray *itemsToPlay     = [NSArray arrayWithObjects:firstItem, secondItem, thirdItem, nil];
AVQueuePlayer *qPlayer   = [AVQueuePlayer queuePlayerWithItems:itemsToPlay];

[qPlayer play];
Run Code Online (Sandbox Code Playgroud)