我正在使用AVPlayer播放视频。这些视频的长度很短,大约2-5秒。它们以随机顺序播放。问题是,当切换视频并开始播放新视频时,设备会出现非常短暂的滞后,但我希望切换是流畅的。是否有一种方法可以预加载AVPlayer中的视频?
AVQueuePlayer
。我假设你所描述的延迟实际上是预缓冲延迟,使用AVQueuePlayer
应将其最小化或完全消除,因为该播放器会在播放当前项的同时缓冲下一个AVPlayerItem
。另请参见Mihai在Pre-buffering-for-avqueueplayer上的回答。在iOS 4.1及更高版本中,可以使用AVQueuePlayer对象按顺序播放多个项目(AVQueuePlayer是AVPlayer的子类)。
insertItem
足够的时间来排队项目以进行无间隙的转换。如果它们是足够短的项目,则可能需要在播放第一个项目之前排队多个项目。您可能会发现键值观察器有助于确定何时准备好播放器项目。此外,设置公差可能有助于playerItem.seekToTime(startTime, toleranceBefore: kCMTimeZero, toleranceAfter:kCMTimeZero)
。 - mgamba