現在、iPad から外部ディスプレイにビデオを出力すると、コントロールとすべてが外部ディスプレイに移動します。コントロールが外部ディスプレイ上にある間はムービーを制御できないため、これは役に立ちません。アプリのコード スニペットを次に示します。
これは画面設定コードです: (setupExternalScreen と呼ばれるメソッド)
if ([[UIScreen screens] count] > 1) {
external_disp = [[UIScreen screens] objectAtIndex:1];
[external_disp setCurrentMode:[[external_disp availableModes] objectAtIndex:0]];
self.external_window = [[UIWindow alloc] init];
external_window.screen = external_disp;
[external_window makeKeyAndVisible];
}
これは、MPMoviePlayerViewController の作成です。
[self setupExternalScreen]; //Calls the code above
MPMoviePlayerViewController *mpv = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
[self presentMoviePlayerViewControllerAnimated:mpv];
私も MPMoviePlayerController を持っていて、これも試しました:
self.moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerDidFinish:) name:MPMoviePlayerDidExitFullscreenNotification object:[self moviePlayer]];
[self.view addSubview:moviePlayer.view];
if (!external_window) {
[self setupExternalScreen];
}
if (external_window) {
[external_window addSubview:moviePlayer.view];
}
[moviePlayer setControlStyle:MPMovieControlStyleDefault];
[moviePlayer setFullscreen:YES];// animated:NO];
if (![moviePlayer isPreparedToPlay]) [moviePlayer prepareToPlay];
[moviePlayer play];
現在 2 番目の実装では、self.view と external_window の両方に追加すると、外部ディスプレイ (コントロール付き) にビデオが表示され、iPad の画面は、ムービー コントロールがフェードアウトしたときにステータス バーが消える以外は何も起こっていないように見えます。 . また、moviePlayer.view を self.view だけに追加しようとしましたが、iPad で映画を再生する前に、「テレビでコンテンツを表示しています」というメッセージの効果で何かがちらつきます。現在、ビデオはボタンを押すことで起動されます。シミュレーターと TV 出力オプションを使用すると、デバッグが容易になります。Xcode バージョン 3.2.5 と最新バージョンの iOS の実機。これはどのように修正できますか?iPad の YouTube アプリのように動作するはずです。