做一个视频启动页其实比较简单,自己为了丰富一下功能,就封装了一套AVPlayer,当自己把一切都搞定了之后,调试
草,跳过视频就进行操作就直接崩了.搞了一个下午.最后定为为题的原因.
用KVO观察了变化,但是后面移除的实际不正确.导致根本就没移除.
Be sure to invoke removeObserver: or removeObserver:name:object: before notificationObserver or any object specified in addObserver:selector:name:object: is deallocated.
// 释放播放器资源
[self.player removeObserver:self forKeyPath:@”rate” context:nil];
[self.player.currentItem removeObserver:self forKeyPath:@”status”];
[self.player.currentItem removeObserver:self forKeyPath:@”loadedTimeRanges”];
[self.player replaceCurrentItemWithPlayerItem:nil];
self.player = nil;
[[NSNotificationCenter defaultCenter]removeObserver:self];
记住在用KVO的时候,移除自己对属性的注册,特别注意
视频启动页封装与AVPlayer调试问题解决
本文详细记录了作者在封装AVPlayer用于视频启动页时遇到的问题及解决方案,包括KVO观察与资源释放的注意事项。通过案例分析,读者可以了解如何正确使用KVO避免资源泄露,提高代码质量。
1142

被折叠的 条评论
为什么被折叠?



