2016-12-20 10 views
0

Ich mache eine Anwendung. Ich habe das AVPlayerViewController verwendet, um das Video abzuspielen. Aber es nicht nach dem Abspielen des Videos entlassen.AVPlayerviewcontroller wird nicht entlassen

Bitte überprüfen Sie die meine Quelle:

_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"); 

} 

Danach AVPlayerViewController nicht entlassen wird.

Antwort

0

Nicht hundertprozentig sicher, aber vielleicht weil NSNotificationCenter immer noch einen Verweis auf sich selbst hält. Versuchen Sie, den Beobachter in - (void)playerItemDidReachEnd:(NSNotification *)notification Funktion zu entfernen. Ab diesem

[[NSNotificationCenter defaultCenter] removeObserver:self 
               name:AVPlayerItemDidPlayToEndTimeNotification 
               object:nil]; 
+0

diese Methode selbst nicht feuern. –

+0

Danach können Sie versuchen, Zeilen umzukehren, zuerst spielen und dann registrieren Beobachter http://stackoverflow.com/questions/23904436/avplayeritemdidplaytoendstimenotification-not- aufgerufen und wenn das nicht funktioniert können Sie versuchen, diese http: // stackoverflow. com/questions/26512158/avplayeritemdidplaytoendtimenotification-nicht-mit-ios-8-aufgerufen werden ... es gibt eine Vielzahl von Threads mit diesem, sollten Sie versuchen, es zuerst zu suchen – Luzo

Verwandte Themen