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

你可能感兴趣的:(iOS AVFoundationErrorDomain Code=-11839原因和解决办法)