ios - 播放 AVQueuePlayer 的第 n 个项目

标签 ios objective-c cocoa-touch avqueueplayer

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

我使用了 - (void)replaceCurrentItemWithPlayerItem:(AVPlayerItem *)item 但它用传递的 AVPlayerItem 替换了当前播放的项目。

我需要播放 AVQueuePlayer 的第 n 个 AVPlayerItem。任何帮助将不胜感激。

最佳答案

两个想法,未经测试:

一个。前进

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

B.计算时间

使用 -duration (AVPlayerItem) 获取从队列开始到(但不包括)第 n 个视频的所有视频的持续时间,然后转到结果时间与 -seekToTime:toleranceBefore:toleranceAfter:.

我想你应该没有容忍度和解码延迟的问题,因为似乎时间是视频的开始。

关于ios - 播放 AVQueuePlayer 的第 n 个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29790331/

相关文章:

ios - Objective-C/iPhone 中的滴答计时器?

ios - 如何使 UITableViewCell 的动态高度

ios - drawRect:在 UIView 类别中

iphone - 如何在不从 map 中添加/删除的情况下移动 MKAnnotation?

iphone - UIImagePickerViewController 返回的图像未显示

ios - 在 iOS 7 中维护导航动画

ios - InputAccessoryView 的 viewWillDisappear : method called early in iOS 9

objective-c - 在单点触控中构建静态库

ios - NavigationBar 没有完全隐藏

iPhone(iOS 5)从横向强制纵向并返回