我使用了
Apple docs的AVPlayerDemo样本,并在自己的界面上写了自己的UI,播放从UITableViewController中选择的视频.现在,问题是这里有一个内存泄漏,我无法找到.问题是,AVPlayer对象没有被处理,我猜这是因为每次按下按钮并选择一个新的视频播放,这个应用程序消耗的总内存有一个巨大的跳跃,显示在这里:
第一次视频是播放器,内存使用量是36.6MB,现在是第二次:
在这里,它已经跳到了58.2MB,并且每次回去再播放视频或者播放不同的视频时,它都会不断增加.
我试过使用仪器与泄漏,但还没有能够弄清楚它有什么问题.
//编辑
- -(void) viewWillDisappear:(BOOL)animated{
- [super viewWillDisappear:animated];
- if(_player.rate == 1.0){
- [_player pause];
- }
- [idleTimer invalidate];
- if(mTimeObserver){
- [_player removeTimeObserver:mTimeObserver];
- mTimeObserver = nil;
- }
- [_playerItem removeObserver:self forKeyPath:kStatusKeyT];
- [[NSNotificationCenter defaultCenter] removeObserver:self name:AVPlayerItemDidPlayToEndTimeNotification object:_playerItem];
- _player = nil;
- _playerItem = nil;
- idleTimer = nil;
- _tapGestureRecognizer = nil;
- }
- -(void) dealloc
- {
- NSLog(@"DEALLOCING");
- }