Question

Modifier : si vous tombez sur ce et que vous voulez savoir comment je finalement résolu, j'ai renoncé à ce code ci-dessous et finalement fait ceci:

-(void)playMovieAtURL:(NSURL*)theURL{
    mediaPlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:theURL];

    [self presentMoviePlayerViewControllerAnimated:mediaPlayer];
    mediaPlayer.view.backgroundColor = [UIColor blackColor];

}

Original post:

Ceci est mon code -. Je l'ai enlevé le site de la pomme ne devrait donc pas être un problème

Il fonctionne dans un UITableViewController sur la méthode didSelectRowAtIndexPath.

Lorsque vous sélectionnez la ligne la vidéo commence à jouer - les sorties sonores au moins - mais il n'y a pas d'image. Toute idée pourquoi est-ce? J'ai inclus le cadre.

La vidéo est un site hors du Apple (une vidéo de FaceTime) que j'ai utilisé pour les tests.

 -(void)playMovieAtURL:(NSURL*)theURL{



        MPMoviePlayerController* theMovie =

        [[MPMoviePlayerController alloc] initWithContentURL: theURL];



        theMovie.scalingMode = MPMovieScalingModeAspectFill;

        theMovie.controlStyle = MPMovieControlStyleNone;



        // Register for the playback finished notification

        [[NSNotificationCenter defaultCenter]

         addObserver: self

         selector: @selector(myMovieFinishedCallback:)

         name: MPMoviePlayerPlaybackDidFinishNotification

         object: theMovie];



        // Movie playback is asynchronous, so this method returns immediately.

        [theMovie play];

    }
Était-ce utile?

La solution

Le comportement de MPMoviePlayerController changé dans OS 3.2 - vous devez ajouter explicitement le point de vue du lecteur vidéo à votre hiérarchie de vue maintenant - en utilisant quelque chose comme:

[aView addSubview:moviePlayerController.view];
moviePlayerController.view.frame = aView.frame;

Vous pouvez également utiliser un MPMoviePlayerViewController (nouveau en 3.2) pour gérer la vue.

Si vous êtes à la fois avant et ciblage des dispositifs de post-3.2 (par exemple iOS 3.1 et 4.0), alors vous aurez besoin d'un code conditionnel pour déterminer le système d'exploitation le code est en cours d'exécution sur et gérer en conséquence. Je l'ai utilisé ce dans les projets précédents:

if ([moviePlayerController respondsToSelector:@selector(setFullscreen:animated:)]) {
    // Running on OS 3.2 or above
    // Code to add to a view here...
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top