video - AVPlayer 第七次重新进入画面后无法显示

标签 video avplayer avplayerlayer ios9.3

在我的 IOS 应用程序中使用 AVPlayer 显示短视频的屏幕。我成功离开并重新进入此屏幕几次,但在七次或更多次后,我得到空白屏幕并且 AVPlayerLayer 的 IsReadyForDisplay 属性为“NO”。

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

我认为问题出在 AVPlayer 缓冲区或可能导致 block 的其他组件 AVPlayer 无法从视频文件中读取,但我没有找到任何方法来清理/或清除此缓冲区/ block 。

有没有人以前遇到过这个问题?或者知道为什么我在第七个入口出现这个黑屏?

提前致谢

以利

最佳答案

根据我的经验,当您的 View 覆盖了变量 layerClass 并且它不会以某种方式从内存中消失并且每次您访问带有视频层的 VC 时,情况只会变得更糟。

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

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

也许这不是最“正确”和完美的方式,但最终对于我来说视觉外观没有任何变化。

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

关于video - AVPlayer 第七次重新进入画面后无法显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37256998/

相关文章:

ios - 当应用程序再次运行时,AVAudioPlayer 不再播放音乐

iPhone - 从视频文件中分离音频并将其保存到单独的文件中

video - UIWebView iPhone OS 4.0无法查看YouTube视频

ios - AVComposition 中的轨道在暂停时会丢失时间

ios - 是否可以暂停和恢复 AVPlayer 的缓冲?

ios - AVPlayerLayer 没有显示 AVPlayer 视频?

api - 如何从Instagram链接中找到mp4视频链接

video - MPEG-4 和 alpha 透明度——正在进行的传奇

ios - 为 AVURLAssets 设置 HTTP header 字段

swift - AVPlayer 视频在设备旋转后不调整大小