iphone - 在最后一个之后重播 AVQueuePlayer 中的项目

标签 iphone ios avfoundation avplayer avqueueplayer

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

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

最佳答案

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

关于iphone - 在最后一个之后重播 AVQueuePlayer 中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11155983/

相关文章:

iOS如何使用SecCertificateCreateWithData

ios - 如何列出对象正在观察的所有通知?

ios - 单例类为其 NSString 属性返回 nil 值

ios - AVCameraInput - 将相机从前切换到后时崩溃

iphone - 防止 iPhone 在连接到充电器且应用程序正在运行时锁定

ios - 如何让 watchkit 扩展应用程序和我的 iphone 应用程序共享相同的 icloud 数据库

ios - 您如何确定 XCode 使用的构建选项,以便您可以将它们与 xcodebuild 一起使用?

swift - AVAssetExport 失败 "cannot decode"

ios - 从 AVCaptureStillImageOutput 解压缩的 UIImage

ios - Facebook 登录页面为空且无法加载