iOS AVFoundationErrorDomain Code=-11839原因和解决办法

最近在项目中使用AVPlayer中发现了一个错误:
Error Domain=AVFoundationErrorDomain Code=-11839 "无法解码" UserInfo={NSLocalizedDescription=无法解码, NSUnderlyingError=0x1c1851f10 {Error Domain=NSOSStatusErrorDomain Code=-12913 "(null)"}, NSLocalizedRecoverySuggestion=停止其他所有对媒体解密的操作,然后再试一次。, NSLocalizedFailureReason=此媒体所需的解码器正忙。}

在APP运行期间, 只要执行这个方法, 超过16次, 就会出现这个这个错误.

self.plyer =  [AVPlayer playerWithPlayerItem:playerItem]; 

这个错误会导致AVPlayer无法播放视频.
在网上搜了一圈后, 发现这个错误是由于内存泄漏造成了.因为我在使用AVPlayer的时候,每次创建完之后,没有释放掉它,导致错误产生.

释放AVPlayer其实很简单, 在每次离开播放页面, 或者不需要播放的时候, 加上这行代码就行. 之后无论你怎么创建AVPlayer, 都不会再出现这个无法解码问题

 [self.player replaceCurrentItemWithPlayerItem:nil]; 

感谢文章: https://www.jianshu.com/p/5d166c4bb7c1

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容