第七次重新进入屏幕后,AVPlayer尚未准备好显示

时间:2016-05-16 14:59:42

标签: video avplayer avplayerlayer ios9.3

屏幕在我的IOS应用程序中使用AVPlayer显示短视频。我离开并成功地重新进入这个屏幕几次,但是经过七次以上我得到了空白屏幕并且AVPlayerLayer的IsReadyForDisplay属性是“没有”。

当我离开此屏幕时,我暂停AVPlayer(并设置为nil)并从视图层中删除AVPlayerLayer。在我看来,它不是内存使用问题(17Mb使用)。

我认为问题是AVPlayer缓冲区或者其他导致阻塞的组件AVPlayer无法从视频文件中读取,但我没有找到任何方法来清理/清除此缓冲区/块

以前是否有人遇到此问题?或者知道为什么我会在第七个入口处看到这个空白屏幕?

提前致谢,

Eli

1 个答案:

答案 0 :(得分:1)

根据我的经验,当您拥有可变的layerClass覆盖视图时,可能会发生这种情况,并且它不会从内存中消失,每次使用视频图层访问VC时,情况都会变得更糟。< / p>

尝试通过insertSublayer手动插入视频图层,而不是覆盖您的VideoView layerClass属性。

比在viewDidDisappear中尝试在所有这些上调用removeFromSuperView并强制它们变为nil,以确保从内存中清除连接到它们的所有内容。

也许它不是最好的&#34;对&#34;这是完美的方式,但最终对于视觉外观,我没有任何变化。

此外,我想知道真正的原因是什么,因为阅读Apple的所有文档并没有帮助。