Videospiele, aber kein Bild - nur ein Geräusch?
-
02-10-2019 - |
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];
}
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...
}