我使用 AVQueuePlayer
来播放从URL加载的一系列电影 .
我试图用我需要播放的所有 AVPlayerItems
数组初始化播放器实例 .
player = [[AVQueuePlayer queuePlayerWithItems:playerItemsArray]
但在这种情况下 AVQueuePlayer
在开始播放之前加载每个 AVPlayerItem
的一些初始部分 . 它导致令人沮丧的冻结,应用程序几秒钟内没有响应 .
有可能只将第一个 AVPLayerItem
添加到玩家的队列中,观察其状态并仅在第一个到达结束时在队列中添加第二个项目,但在这种情况下,由于初始化和缓冲第二个项目而导致两个项目的回放之间存在间隙 AVPlayerItem
.
有没有办法在没有冻结的情况下组织几个视频的无间隙播放?
我应该为此目的使用其他玩家吗?
提前致谢 .
3 回答
找到解决方案 .
在
AVQueuePlayer
队列中添加新的AVPlayerItem
时,将同步等待播放器项目的初始部分被缓冲 .因此,在这种情况下,播放器项应该异步缓冲,然后可以将其添加到队列中 .
可以使用
[AVURLAsset loadValuesAsynchronouslyForKeys: completionHandler:]
完成例如:
使用AVQueuePlayer的此解决方案队列可以填充没有任何间隙和冻结的项目 .
在Swift 2中,在这里工作:
这是解决方案 .