MPMoviePlayerController: Neuausrichtung von Hochformat auf Querformat und zurück auf Hochformat (iOS 4.1)
Seit iOS 3.2 der MPMoviePlayerController Klasse ermöglicht das einbetten eines Films in der view-Hierarchie.
Jetzt bin ich vor diesem Problem: ich erstelle meine portrait-Ansicht, indem Sie eine Instanz der MPMoviePlayerController. Wenn der Benutzer auf die "Vollbild" - button in dieser Ansicht in den Vollbild-Modus, aber der Blick bleibt im hochformat. Wenn der Benutzer das Gerät dreht der fullscreen-Film-Ansicht wird nicht automatisch gedreht, so dass meine app verbietet Landschaft interface-Orientierung.
So damit die auto-rotation von Film-Spieler fullscreen Ansicht, änderte ich meine Ansicht-controller shouldAutorotateToInterfaceOrientation: Methode zum zurückgeben JA für Landschafts -, wenn - und nur wenn - der movie player im Vollbildmodus.
Das funktioniert perfekt: wenn der Benutzer im Vollbildmodus und dreht sich dann zur Landschaft-der Spieler wird automatisch gedreht, um die Landschaft und den gesamten Bildschirm füllt.
//Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
//Return YES for supported orientations
//return (interfaceOrientation == UIInterfaceOrientationPortrait);
if(UIInterfaceOrientationIsPortrait(interfaceOrientation)) {
return(YES);
}
if(UIInterfaceOrientationIsLandscape(interfaceOrientation)) {
return([movieController isFullscreen]);
}
return(NO);
}
Nun das Problem entsteht, wenn ich berühren Sie die Schaltfläche "Fertig" in der full-screen-Ansicht, während die übrigen in der Landschaft. Der komplette Bildschirm wird geschlossen, und dann, was ich sehe, ist meine ursprüngliche Ansicht autorotated: ich will aber nicht diese auto-rotation.
Eine teilweise, aber keine akzeptable Lösung, ist zu hören für "MPMoviePlayerDidExitFullscreenNotification" und, wenn die Schnittstelle gewechselt wird, um Landschaft, Kraft re-Orientierung zu verwenden, die ohne Papiere und private Funktion:
[[UIDevice currentDevice] setOrientation:UIDeviceOrientationPortrait]
Diese funktioniert, ist aber nicht akzeptabel, da die Verwendung dieser Methode ist verboten.
Ich versuchte, Sie zu zwingen, Orientierung über [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait]
aber da bin ich in eine Tab-Leiste, das funktioniert nicht (der UITabBar bleibt Landscape-Format).
Vielen Dank für Ihre Hilfe
InformationsquelleAutor der Frage viggio24 | 2010-10-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie in einer eigenen view-controller für MPMovieplayer. Sie nicht haben, um das überschreiben der
(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
in der ursprünglichen view-controller.
wenn Sie MPMoviePlayerViewControlleralles ist bereits schön für Sie, wie die Methode
shouldAutorotateToInterfaceOrientation:
zurückkehren wird JA standardmäßig. Sie können es verwenden, wie eine Untersicht oder präsentieren Modal aufrufenpresentMoviePlayerViewControllerAnimated:
InformationsquelleAutor der Antwort Jose Cherian
Check this out: MPMoviewPlayerController Vollbild-Wiedergabe rotation mit zugrunde liegenden UIViewController mit portrait-Modus (nur rotation nicht zulässig).
Vielleicht ein wenig anders problem, sondern die Lösung gleich sein kann.
InformationsquelleAutor der Antwort Split