Rya*_*yan 5 ios avplayer avplayeritem
我正在使用AVPlayer和播放实时视频AVPlayerItem。我观察AVPlayerItem的status,isPlaybackLikelyToKeepUp和AVPlayerItemPlaybackStalled。我还观察到AVPlayer的rate。
在测试时,我发现确实发生了奇怪的事情。
在AVPlayer正常播放视频(AVPlayerItem.status == readyToPlay和AVPlayerItem.isPlaybackLikelyToKeepUp == true)的同时,如果按主屏幕按钮,该按钮将AVPlayer.rate变为0.0。这意味着玩家停止了游戏。
当应用程序就回到前台,我按下播放按钮,它仍然是AVPlayerItem.status == readyToPlay和AVPlayerItem.isPlaybackLikelyToKeepUp == true,但暂停后有一段时间开始播放。
我想知道播放器已暂停或正在播放。在这种情况下,即使播放器未在播放视频,状态也会指示其正在播放。(AVPlayerItem.status == readyToPlay,AVPlayerItem.isPlaybackLikelyToKeepUp == true,AVPlayer.rate == 1.0)
我检查AVPlayerItem的loadedTimeRanges和item.loadedTimeRanges.first不为零(loadedTimeRanges只有一个项目)及其start与duration不为0。
我应该检查什么?
我要补充一点。
此症状仅在流式(m3u8)上发生,而在vod(mp4)上不发生。
所以我想这是缓冲数据的问题。播放器正在播放时,缓冲区中有数据要播放,并且数据仍然有效。应用背景去,回到前台后,玩家的缓冲仍然有数据,所以isPlaybackLikelyToKeepUp == true,AVPlayerItem.status == readyToPlay。但是,当我尝试播放时,会AVPlayer刷新缓冲区,因为它很旧。
看来到目前为止,唯一的方法是创建新AVPlayerItem应用并在应用程序返回到前台时进行设置。
我遇到的确切问题是什么,想知道如何避免它。
这是我正在处理的仓库。
https://github.com/trick14/SLPlayer
上面的是直播,下面的是VOD。加载完成后,播放并转到背景和前景两次。而且,如果您尝试玩游戏,则所有状态看起来都很正常,但玩家却停滞了。