AVPlayer, KVO释放报错AVPlayerItem was deallocated

iOS 码拜 9年前 (2015-09-18) 1769次浏览
 

AVPlayer开发,KVO该释放的都释放了。在无网络状态下,连续开启几次播放器就会出现错误:

AVPlayerItem was deallocated while key value observers were still registered with it

dealloc如下:

       [player removeObserver:self forKeyPath:@”rate” context:nil];

        [player.currentItem removeObserver:self forKeyPath:@”status”];

        [player.currentItem removeObserver:self forKeyPath:@”loadedTimeRanges”];

#1

15分

连续开启几个播放器是反复push/pop某个页面么?
#2
解决了,原来在无网络状态下,AVPlayerItem在remove observer之前已经被置为nil了,所以根本起不了作用,大牛同事同样用KVO监控了AVPlayerItem,在它置为nil之前就remove observer了。
#4

15分

KVO使用不当,会出现很多这样那样的问题。如你上面所说,释放的时机不好把握。这里有一个比较好的第三方库对这种状态的管理有比较好的封装。它就是ReactiveCocoa, 一个非常优秀的状态管理的框架。它将KVO, NSNotificationCenter, target – action 这些统一了处理的接口

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明AVPlayer, KVO释放报错AVPlayerItem was deallocated
喜欢 (0)
[1034331897@qq.com]
分享 (0)