Frage

Bearbeiten : Wenn Sie über diese kommen und wollen wissen, wie ich es schließlich löste es auf diesem Code gab unten schließlich und tat dies:

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

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

}

Original-Beitrag:

Das ist mein Code -. Ich nahm es aus der Apfel-Website so sollte kein Problem sein

Es läuft in einem UITableViewController auf dem DidSelectRowAtIndexPath Verfahren.

Wenn Sie die Zeile markieren das Video abgespielt wird - die Tonausgänge zumindest - aber es gibt kein Bild. Jede Idee, warum das so ist? Ich habe den Rahmen enthalten.

Das Video ist ein von der Apple-Website (ein Facetime Video), dass ich zum Testen verwendet.

 -(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];

    }
War es hilfreich?

Lösung

Das Verhalten von MPMoviePlayerController geändert in O 3.2 - Sie müssen jetzt der Video-Player Ansicht zu Ihrer Ansicht Hierarchie explizit hinzufügen - mit so etwas wie:

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

Alternativ können Sie eine MPMoviePlayerViewController (neu in 3.2) verwenden, um die Ansicht zu verwalten.

Wenn Sie beide Pre- und Post-3.2-Geräte sind Targeting (z iOS 3.1 und 4.0), dann werden Sie etwas bedingten Code benötigen das Betriebssystem bestimmen Sie den Code auf läuft und entsprechend zu behandeln. Ich habe dies in früheren Projekten verwendet:

if ([moviePlayerController respondsToSelector:@selector(setFullscreen:animated:)]) {
    // Running on OS 3.2 or above
    // Code to add to a view here...
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top