将多个音频文件作为一个顺序播放

Play multiple audio files in sequence as one

我正在尝试实现一个音频播放器来播放多个文件,就好像它们是一个文件一样。但是,初始缓冲时间应该只是第一部分的时长,其他文件应该依次加载。

例如:

File1 应该像 1:29 一样播放,但我们(最多)只能等到 Part1 加载完毕才能开始播放。

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

以前有人遇到过这个问题吗?

谢谢!

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

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];