AVPlayerviewcontroller не увольняет

Я делаю одну заявку. В том, что я использовал AVPlayerViewController для воспроизведения видео. Но его не уволить после воспроизведения видео.

Пожалуйста, проверьте мой источник:

 _player = [AVPlayer playerWithURL:self.videoURL];
        _avVideoController = [[AVPlayerViewController alloc]init];
        _avVideoController.view.frame = self.view.frame;
        _avVideoController.delegate =self;
        _avVideoController.player.actionAtItemEnd = AVPlayerActionAtItemEndAdvance;
        _avVideoController.player = _player;
        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(playerItemDidReachEnd:)
                                                     name:AVPlayerItemDidPlayToEndTimeNotification
                                                   object:[_avVideoController.player currentItem]];
        [_player play];
        [self.view addSubview:_avVideoController.view];
        [self presentViewController:_avVideoController animated:YES completion:nil];


- (void)playerItemDidReachEnd:(NSNotification *)notification
{

[_avVideoController dismissViewControllerAnimated:YES completion:nil];
[_avVideoController.view removeFromSuperview];
NSLog(@"IT REACHED THE END");

 }

После этого AVPlayerViewController это не увольнение.

1 ответ

Не на сто процентов уверен, но может быть потому, что NSNotificationCenter по-прежнему сохраняет ссылку на себя. Попробуйте удалить наблюдателя в - (void)playerItemDidReachEnd:(NSNotification *)notification функция. По состоянию на это

[[NSNotificationCenter defaultCenter] removeObserver:self 
                                                name:AVPlayerItemDidPlayToEndTimeNotification 
                                              object:nil];
Другие вопросы по тегам