我需要在AVQueuePlayer中创建一个无限循环之类的东西。特别是,我想在最后一个组件播放完毕后重播NSArray的整个AVPlayerItem

我必须承认,我实际上不知道如何实现这一目标,希望您能给我一些提示。

最佳答案

在AVQueuePlayer中循环播放视频序列的最佳方法。

观察AVQueuePlayer中的每个播放器项目。

queuePlayer.actionAtItemEnd = AVPlayerActionAtItemEndNone;
for(AVPlayerItem *item in items) {
    [[NSNotificationCenter defaultCenter] addObserver:self
            selector:@selector(nextVideo:)
            name:AVPlayerItemDidPlayToEndTimeNotification
            object:item ];
}

在每个nextVideo上,再次插入currentItem使其排队播放。确保将每个项目都归零。在advanceToNextItem之后,AVQueuePlayer将从队列中删除currentItem。
-(void) nextVideo:(NSNotification*)notif {
    AVPlayerItem *currItem = notif.userInfo[@"object"];
    [currItem seekToTime:kCMTimeZero];
    [queuePlayer advanceToNextItem];
    [queuePlayer insertItem:currItem afterItem:nil];
}

09-28 13:39