I used the AVPlayerDemo sample from the Apple docs and wrote my own UI on top of it to play videos selected from a UITableViewController. Now, the problem is that there's a memory leak here somewhere which I can't find out. The problem is that the AVPlayer object is not being dealloced, I guessed this because every time a press back button and select a new video to play, there is a huge jump in the total memory consumed by the app which is show here:
The first time the video is player, the memory usage is 36.6MB, now for the second time:
Here it has jumped to 58.2MB, and keeps on increasing every time i go back and play the video again or a different video.
I have tried using Instruments with Leaks but haven't yet been able to figure out whats wrong with it.
Heres the whole Controller file code.
//EDIT
-(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");
}