iOS:AVPlayer视频预加载

11

我正在使用AVPlayer播放视频。这些视频的长度很短,大约2-5秒。它们以随机顺序播放。问题是,当切换视频并开始播放新视频时,设备会出现非常短暂的滞后,但我希望切换是流畅的。是否有一种方法可以预加载AVPlayer中的视频?


请参考这个答案:https://dev59.com/1m855IYBdhLWcg3wp2J0#39036307 或许对你有所帮助。 - iPatel
1个回答

4
尝试使用AVQueuePlayer。我假设你所描述的延迟实际上是预缓冲延迟,使用AVQueuePlayer应将其最小化或完全消除,因为该播放器会在播放当前项的同时缓冲下一个AVPlayerItem
来自AVFoundation文档:

在iOS 4.1及更高版本中,可以使用AVQueuePlayer对象按顺序播放多个项目(AVQueuePlayer是AVPlayer的子类)。

另请参见Mihai在Pre-buffering-for-avqueueplayer上的回答。

9
苹果开发者支持告诉我,AVQueuePlayer不会缓冲视频项。 - midas06
@midas06 是正确的。没有缓冲。你仍然会在视频之间得到一个间隔。 - Jordan Smith
@midas06 @Jordan,请确保您给insertItem足够的时间来排队项目以进行无间隙的转换。如果它们是足够短的项目,则可能需要在播放第一个项目之前排队多个项目。您可能会发现键值观察器有助于确定何时准备好播放器项目。此外,设置公差可能有助于playerItem.seekToTime(startTime, toleranceBefore: kCMTimeZero, toleranceAfter:kCMTimeZero) - mgamba
请参考这个答案:https://dev59.com/1m855IYBdhLWcg3wp2J0#39036307 或许对你有帮助。 - iPatel
1
@midas06 看起来这只对 iOS 4 有效,而不适用于 5 或以上的版本。 - Till

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接