播放AVQueuePlayer的第n个项目

Pra*_*ngh 1 cocoa-touch objective-c ios avqueueplayer

我有一个实例,AVQueuePlayer并使用一系列视频进行了初始化AVPlayerItem(假设我有10个项目),在按钮事件中,我需要播放该集合中的第n个索引项目。

我已经用过了,- (void)replaceCurrentItemWithPlayerItem:(AVPlayerItem *)item但是它用替换了当前的播放项目AVPlayerItem

我需要打第n个AVPlayerItemAVQueuePlayer。任何帮助将不胜感激。

Ami*_*wad 5

有两个想法,未经测试:

A.前进

NSUInteger indexToPlay = …
AVPlayerItem *currentItem = [queuePlayer currentItem];
NSUInteger currentIndex = [[queuePlayer items] indexOfObject:currentItem];
for (;currentIndex<indexToPlay; currentIndex++)
{
  [queuePlayer advanceToNextItem];
}
Run Code Online (Sandbox Code Playgroud)

B.计算时间

使用-durationAVPlayerItem)获取从队列开始到第n个视频(但不包括第n个视频)的所有视频的时长,并使用转到结果时间 -seekToTime:toleranceBefore:toleranceAfter:

我认为您应该在容忍度和解码延迟方面没有问题,因为似乎是视频的开始。