Я использовал образец AVPlayerDemo из Apple docs и написал свой собственный пользовательский интерфейс, чтобы воспроизводить видео, выбранные из UITableViewController. Теперь проблема в том, что там где-то утечка памяти, которую я не могу найти. Проблема в том, что объект AVPlayer не освобождается, я догадался об этом, потому что каждый раз, когда вы нажимаете кнопку "Назад" и выбираете новое видео для воспроизведения, происходит огромный скачок общей памяти, потребляемой приложением, которое показано здесь:
В первый раз, когда видео является проигрывателем, использование памяти составляет 36,6 МБ, теперь во второй раз:
Здесь он подскочил до 58,2 МБ и продолжает увеличиваться каждый раз, когда я возвращаюсь и снова воспроизвожу видео или другое видео.
Я пробовал использовать инструменты с утечками, но еще не смог понять, что с ним не так.
Сохраняет весь файл контроллера 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");
}