2011-04-16 3 views
2

J'ai un problème avec mon code qui lit un fichier vidéo. Chaque fois que je joue le fichier en mode plein écran, la lecture n'occupe pas tout l'écran. Voici le code correspondant:MPMoviePlayerController mode plein écran problème

 NSURL *url = [NSURL fileURLWithPath:@"Somefile.mov"]; 
    moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
    [moviePlayer setControlStyle:MPMovieControlStyleFullscreen]; 
    [moviePlayer setFullscreen:YES]; 
    moviePlayer.view.frame = self.switchView.frame; 
    [self.switchView addSubview:moviePlayer.view]; 

    [[NSNotificationCenter defaultCenter] 
    addObserver:self 
    selector:@selector(movieFinishedCallback:)             
    name:MPMoviePlayerPlaybackDidFinishNotification 
    object:moviePlayer]; 

    [[NSNotificationCenter defaultCenter] 
    addObserver:self 
    selector:@selector(playbackStateDidChange:)             
    name:MPMoviePlayerPlaybackStateDidChangeNotification 
    object:moviePlayer]; 

    [moviePlayer prepareToPlay]; 
    [moviePlayer play]; 

Voici la sortie que je reçois:

enter image description here

+0

Essayez celui-ci plutôt que le cadre que vous définissez moviePlayer.view.frame = self.switchView.bounds; – Ravin

+0

Il semble que la barre inférieure est maintenant dans la bonne position, mais la barre du haut est encore plus basse. http://img849.imageshack.us/i/defaultj.png/ – Diurpaneus

Répondre

7

Option A: Utilisez le MPMovieViewController à la place et l'afficher à l'aide des fonctions modales presentMoviePlayerViewControllerAnimated:.

Option B: Assurez-vous que votre switchView (que vous utilisez pour ajouter la vue du MoviePlayer) occupe réellement tout l'écran.

Option C: Réajuster le cadre du point de vue de movieplayer avec des décalages verticaux négatifs jusqu'à ce qu'il soit - par exemple .: moviePlayer.view.frame = CGRectMake(0.0f, -20.0f, 320.0f, 480.0f);

Note: MPMoviePlayerController toujours affiche une barre d'état lorsque vous utilisez le style de contrôle MPMovieControlStyleFullscreen, peu importe comment le reste de votre application gère la barre d'état.

+0

J'ai fait l'option C et cela a résolu mon problème. De plus, dans viewDidAppear je mets moviePlayer.view.frame = CGRectMake (0.0f, -20.0f, 320.0f, 480.0f); parce que sinon l'écran du film saute! Mais pour la partie addSubView, je la vois sur 0.0f. – rockstarberlin

1

Modifiez la propriété ControlStyle de votre lecteur de la méthode ci-dessous: - (void) applyUserSettingsToMoviePlayer

player.controlStyle = MPMovieControlStyleFullScreen cause le problème ci-dessus, changer à MPMovieControlStyleEmbedded et voir si cela fonctionne.

Questions connexes