2010年12月17日金曜日

ipadアプリの外部出力(ミラーリング)

フリーで素敵なソースがありました。

iPadの画面を外部モニタへ出力する「TVOutManager」

中を見たけど難しい…じっくり解析します。

何となく仕組みがわかったので追記;
使い方は
1.TVOutManagerクラスを使いたいプロジェクトに入れる
2.初期表示するビューコンにTVOutManager.hをインポート
3.切り替えスイッチを用意してオンで
[[TVOutManager sharedInstance] startTVOut];
オフで、
[[TVOutManager sharedInstance] stopTVOut];
を実行する
※確認にはiPad専用のVGAアダプタと外部出力モニタが必要

>iPad自体にミラーリング機能はない…不便だ

>TVOutManagerは実機で表示しているスクリーンを画像化して、
 外部出力に貼付ける作業を別スレッドで定期的に行う
 ことでミラーリングしているようにみせているっぽい

>どうやらスクロールなど他の処理が走っている際には
 画像の更新を行わない。スクロールはかくかく表示になる 

>viewdidloadにスタートメソッドを入れてもなぜかうまく
 動作しない。明示的にボタンなどでスタートさせないとうまく行かなかった。
 viewdidloadにタイマー仕込んでも駄目だった。

>実機の回転対応はするが、やたらと回転する。修正が必要?
(初期画面がlandscapeだと縦に表示されてしまうなどの問題も)

>外部と実機2つのwindowに同じインスタンスを乗せることができない…?
 これができたらわざわざ画像化なんてしないか…。

わーJailbreakしてしまいたいー。

*外部出力で参考になった記事*
[iPad] 外部ディスプレイに出力する
[iPad] 外部出力方法
iPadからVGA出力
iPadでの外部モニタ出力←Jailbreakの方法も