iPadやiPhone 4はVGAアダプタを使って外部のディスプレイに映像を出力できます。OSレベルでミラーリング出力できるとイイのですが、そんなものはないので、自分でコードを書かなければなりません。でも、これが意外と簡単でした。
要は外部ディスプレイのスクリーンの解像度を設定して、新しいウィンドウを開いて、スクリーンに結びつけるだけ。後は通常のビュー処理です。従来はスクリーンがひとつだけだったので意識することはなかったのですが、ちゃんとUIScreenクラス自体はiPhone OS 2.0から存在してますね。コードの流れとしては、こんな感じ。
- 接続されているスクリーンがメイン・スクリーンでなければ…
- そのスクリーンの対応解像度を求め、条件に合えば解像度を設定する。
- 新しいウィンドウを開き、各種設定をしてビューを載せる。
- そのウィンドウを表示するスクリーンを設定し、ウィンドウを表示する。
iPadではアプリケーション起動時にこんなコードを走らせればOKでしたが、iPhone 4ではダメでした。おそらく外部ディスプレイを認識するまでに時間がかかるんでしょうね。そんなわけで、ちゃんとノーティフィケーションを登録しておく必要もあります。保証もサポートもできませんが、iPhone 4用のサンプルコードを載せておきますね。
外部ディスプレイ出力サンプルコード:RidTest.zip
RidTest by Masayuki Akamatsu is licensed under a Creative Commons Attribution 3.0 Unported License.
ちなみに、このコードは某ディスプレイ装置の実験用で、そのディスプレイは解像度800×600ピクセルのみの対応となっています。iPhoneシミュレータでは800×600が選択できないので、1024×768のスクリーンに対してビューだけを800×600で表示しています。
ピンバック: [夕刊] 今夜2時、アップルが緊急カンファレンスコール!会場はこちら!
すいません。
本当にお恥ずかしい話ですが、このコードを使いたいのですが、その方法も何もかも分かりません。ただ、今私が物凄くiPhone 4に求めている機能を、このコードで達成できそうですので、教えてください。
お願い致します。
「iOSの教科書」をどうぞ〜(笑)
http://iosbook.net
それ以上はそれなりの開発者を雇うとかじゃないでしょうか。