在我测试的时候,我发现真的很奇怪.
当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不是nil(loadedTimeRanges只有一个项目),它的开始和持续时间不是0.
我该怎么检查?
我正在添加更多.
此症状仅在流式传输(m3u8)而非vod(mp4)时发生.
所以我猜这是缓冲数据的问题.当播放器正在播放时,缓冲区有数据可播放且数据仍然有效.应用程序进入后台并返回前台后,播放器的缓冲区仍然有数据,因此isPlaybacklikelyToKeepUp == true,AVPlayerItem.status == readytoplay.但是当我尝试播放时,AVPlayer会刷新缓冲区,因为它已经过时了.
看起来到目前为止唯一的方法是创建新的AVPlayerItem并在应用程序返回前台时设置.
我遇到的确切问题是什么,并想知道如何避免它.
这是我正在努力的回购.
https://github.com/trick14/SLPlayer
上面一个是现场,下面一个是VOD.加载完成后,播放并前往背景和前景几次.如果你尝试玩,所有状态看起来都很正常,但玩家会停滞不前.
解决方法 我很久以前也有类似的经历.那时,当用户按下主页按钮时,我已经存储了播放状态和播放位置.
当返回前台时,我使用存储的信息来恢复或播放该位置.
我希望你能提供帮助.
总结以上是内存溢出为你收集整理的ios – AVPlayerItem不播放视频,即使其状态为“readyToPlay”且“isPlaybackLikelyToKeepUp”为真全部内容,希望文章能够帮你解决ios – AVPlayerItem不播放视频,即使其状态为“readyToPlay”且“isPlaybackLikelyToKeepUp”为真所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)