AVPlayer seekToTime 永远不会完成

Posted

技术标签:

【中文标题】AVPlayer seekToTime 永远不会完成【英文标题】:AVPlayer seekToTime never completes 【发布时间】:2014-05-19 13:51:13 【问题描述】:

我正在使用AVPlayer 远程传输视频。每当我擦洗并使用 seekToTime 时,它​​都会工作,并且视频会从该位置播放,但是如果我按顺序执行此操作足够多次,则 seekToTime 的完成处理程序永远不会返回 "finished == YES" 和卡住了。

此外,在分析连接时,它显示缓冲区永远不会再次加载,即使之后再次调用 seekToTime。我可以将scrubber拖到开头,然后播放将继续,但是它不再缓冲,因此一旦缓冲区用完但不会下载缓冲区,它将卡在“buffering”状态。 p>

有什么想法可能是错的吗?

【问题讨论】:

【参考方案1】:

我有这个问题很长时间了,但也注意到即使搜索从未完成,我也会很快获得与目标搜索匹配的当前播放位置更新(通过传递给addPeriodicTimeObserverForInterval:queue:usingBlock: 的块)。

不过,在使用项目初始化播放器时,我似乎以错误的顺序做一些事情。我会设置一个项目,当玩家的状态变为AVPlayerStatusReadyToPlay 时,我会开始寻找,但它永远不会完成。但是,如果我在当前播放器项目状态为AVPlayerItemStatusReadyToPlay 之前不开始搜索,那么一切正常。

【讨论】:

【参考方案2】:

问题出在内容分发网络上。流式传输 url 即将过期,然后将不再流式传输到播放器

【讨论】:

以上是关于AVPlayer seekToTime 永远不会完成的主要内容,如果未能解决你的问题,请参考以下文章

AvPlayer seekToTime 问题

AVPlayer seekToTime 导致播放器停止播放

AVPlayer seekToTime 不正确使用 UISlider

AVPlayer SeekToTime 不工作。每次从头开始

AVPlayer seekToTime:循环播放短视频时性能不佳

iOS AVPlayer seektotime 锁定在某些点