私の iPad アプリは、ここで説明する手法を使用して、Apple TV に 2 番目の UI を提示します。つまり、Apple TV を表す UIScreen を検出して描画します。
そのドキュメントでは、リモート コントロール イベントの受信についても説明しています。
AirPlay を使用している場合、メディアがホスト デバイスから別の部屋で再生されている可能性があります。AirPlay 出力デバイスには、独自のコントロールがあるか、Apple リモコンに応答する場合があります。最高のユーザー エクスペリエンスを実現するために、アプリは、再生、一時停止、早送りなどのリモート イベントをリッスンして応答する必要があります。リモート イベントを有効にすると、ホスト デバイスに物理的に接続されているヘッドフォンまたはイヤフォンのコントロールにアプリが応答できるようになります。
アプリと単純なテスト プロジェクトの両方で、リモート コントロール イベントの受信を開始するために説明されているアプローチを実装しましたが、イベントを検出できません。iPad に直接接続されたヘッドフォンを使用しているときにイベントを受信しません。また、ビューを Apple TV に送信しているときにイベントを受信しません。
実際、リモート コントロール イベントをインターセプトできる唯一の方法は、単にアプリの UI を表示したりミラーリングしたりするのではなく、 メディアを Apple TV にストリーミングしている場合であるという結論に達しています。
この仮説は、MixerHost サンプル アプリ ( http://developer.apple.com/library/ios/#samplecode/MixerHost/Introduction/Intro.html )を使用して次の手順でテストすることで裏付けられているようです。
- Apple TV へのミラーリングをオンにして、iPad でアプリを起動します。
- リモコンの「再生」ボタンを押しても、何も起こりません。
- アプリ UI の [再生] ボタンを押すと、Apple TV で音楽の再生が開始されます。
- リモコンの「再生」ボタンを押して音楽を止めるが、音楽は止まらない。
- iPad の Airplay ルーティングを変更して、ミラーリングを行わず、単にオーディオを Apple TV に送信するようにします。「remoteControlReceivedWithEvent」にブレークポイントを設定し、リモコンの再生/一時停止ボタンを押すと、イベントをキャッチできる場合があります。一貫性がありません。1 つまたは 2 つのイベントを受け取った後、機能しなくなります。
Airplay と Remote Control Events でうまくいった人はいますか? 提案?