19

VGA コネクタを介して画面をミラーリングすることは可能ですか? これについては何も見つかりません。

4

3 に答える 3

34

私はあなたと同じものを探していました。先週末、ミラーリングのサポートを追加するために小さな UIApplication カテゴリを作成しました。コードを Google Code に公開しました。

http://code.google.com/p/iphoneos-screen-mirroring/

それを使用するには、アプリケーションデリゲートのアプリでセットアップするだけで、起動が完了しました。そのようです:

[[UIApplication sharedApplication] setupScreenMirroringOfMainWindow:mainWindow framesPerSecond:20];

先週末、大画面テレビで Apple AV 出力ケーブルを使って試す機会が 1 回だけありました。パフォーマンスは優れていないため、30 fps を超えるフレーム レートの使用はお勧めしません...

于 2010-04-19T22:21:53.973 に答える
5

QuartzCoreフレームワークが必須であることを追加する価値があると思います。そうしないと、コンパイル時に 4 つのエラーが発生します。

Undefined symbols:
  "_CATransform3DMakeRotation", referenced from:
      -[UIApplication(ScreenMirroring) updateMirroredWindowTransformForInterfaceOrientation:] in UIApplication+ScreenMirroring.o
      -[UIApplication(ScreenMirroring) updateMirroredWindowTransformForInterfaceOrientation:] in UIApplication+ScreenMirroring.o
      -[UIApplication(ScreenMirroring) updateMirroredWindowTransformForInterfaceOrientation:] in UIApplication+ScreenMirroring.o
  "_kCAGravityResizeAspect", referenced from:
      _kCAGravityResizeAspect$non_lazy_ptr in UIApplication+ScreenMirroring.o
     (maybe you meant: _kCAGravityResizeAspect$non_lazy_ptr)
  "_OBJC_CLASS_$_CADisplayLink", referenced from:
      objc-class-ref-to-CADisplayLink in UIApplication+ScreenMirroring.o
  "_CATransform3DIdentity", referenced from:
      _CATransform3DIdentity$non_lazy_ptr in UIApplication+ScreenMirroring.o
     (maybe you meant: _CATransform3DIdentity$non_lazy_ptr)
ld: symbol(s) not found
collect2: ld returned 1 exit status
于 2010-09-23T13:30:07.963 に答える
3

各 UIWindow オブジェクト (基本的には最上位ビュー) には画面 (UIScreen) が割り当てられ、もちろん必要な画面を設定できます。したがって、メイン コンテンツをセカンド スクリーンに移動するのは簡単ですが、ミラーリングは困難です。(なぜそれが醜いのかについての講義を望まない場合は、次の段落までスキップしてください)私はこれがアップルの意図であると信じています.ビデオが再生されるまで、基調講演のプレゼンテーションが開始されるまで何も表示されない場合と比較して、どのようなプレゼンテーション モードに入るのもかなり劣っています。

UIWindow は UIView を継承しているため、私はこの正確なことについてあまり個人的な経験はありませんが、何らかのビットマップ コンテキストに描画してから、それぞれがイメージ ビューのみを持つ 2 つの異なる UIWindows を使用することができるはずです。実際のピクセルをそれぞれの画面にプッシュします。1 つの特定のカスタム ビューのみをミラーリングする場合 (そのサブビューは含めない)、これはかなり簡単です。これは、そのビューをデバイス画面に表示して (任意の入力をキャプチャするため)、メソッドがあるように設計できるためです。どのようなコンテキストでも描画するために呼び出す (一部の drawRects はそのままで問題なく動作する可能性があります) と、他の画面の非常に特別な素晴らしいカスタム サブビューから呼び出します。これは drawRect を実装して、実際のビューでメソッドを呼び出すだけです。

これが役に立てば幸いです。申し訳ありませんが、少し怒鳴りました:(

于 2010-04-18T20:04:15.840 に答える