2017-01-11 15 views
0

J'ai un ViewController qui affiche les informations sur l'émission sélectionnée, et le bouton de lecture de MPMoviePlayerController est là. Maintenant, le problème est quand j'ai cliqué sur l'écran complet du joueur, puis cliqué sur fait. Il est supposé revenir à ViewController qui affiche les informations, mais ce n'est pas le cas. Mais il va dans viewDidLoad du ViewController et il n'affiche rien du tout. Je me sens comme quelque chose est sur le haut de la ViewController ou quelque chose comme çaCharger le même ViewController après avoir regardé MPMoviePlayerController

Voici comment je supprimer le contrôleur de lecteur

- (void)dealloc 
{ 
self.delegate = nil; 
self.activityIndicator = nil; 
[self deregisterMoviePlayerNotifications]; 
[self.player.view removeFromSuperview]; 
[self removeFromSuperview]; 
[self stopVideo]; 
self.player = nil; 
} 

Répondre

1

Vous devez utiliser AVPlayerViewController comme MPMoviePlayerController est dépréciée. Vous pouvez utiliser ce code sur le bouton de lecture

-(void)playButton{  
    AVPlayer *player = [[AVPlayer alloc]initWithURL:urlVideo]; 
    AVPlayerViewController *controller = [[AVPlayerViewController alloc]init]; 
    controller.player = player; 
    controller.videoGravity = AVLayerVideoGravityResizeAspectFill; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerItemDidReachEnd:) name:AVPlayerItemDidPlayToEndTimeNotification object:player.currentItem]; 
    controller.videoGravity = AVLayerVideoGravityResizeAspect; 
    [self presentViewController:controller animated:YES completion:nil]; 
    [player play]; 
} 

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

    [[NSNotificationCenter defaultCenter] removeObserver:self]; 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 

Note: Ne pas oublier d'ajouter AVFoundation.framework.