我需要在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];
}