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

5
我正在尝试实现一个音频播放器,使其能够像单个文件一样播放多个文件。但是,初始缓冲时间应该只是第一部分的持续时间,其他文件应该按顺序加载。
例如:
File1: - Part1 - 0:35秒 - Part2 - 0:47秒 - Part3 - 0:07秒
File1应该像有1:29那样播放,但我们只需等待(最多)Part1加载完毕即可开始播放。
我已经查看了AVAsset,但它似乎解决不了问题。我也考虑使用AVAudioPlayer实现并自己处理所有逻辑。
有人遇到过这个问题吗?
谢谢!
1个回答

3
您可以使用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];

问题已经解决了,我只需要添加一个观察者,这样我就可以得到玩家准备好的状态。 [qPlayer addObserver:self forKeyPath:@"status" options:0 context:nil]; - lucoceano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接