tvOS Appで指向性リモコンをサポートする

Siri Remoteに加えて、tvOSは、タッチまたはボタンインターフェイスを備えたさまざまなハードウェアおよびソフトウェアリモートのサポートを提供します。AppがUIKitやAVKitなどの標準フレームワークを使用している場合、tvOSはリモート操作を自動的に処理して、一貫性のある使い慣れたエクスペリエンスを提供します。カスタムインターフェース要素またはメディアプレーヤーを含むAppをお持ちの場合でも、タッチインターフェースとボタンインターフェースの両方を備えたハードウェアおよびソフトウェアリモコンのナビゲーションおよびコンテンツベースの機能を簡単にサポートできます。方法は次のとおりです。

Appのナビゲーションを探求する

Apple TVでは、リモコンやゲームコントローラを使用し、コンテンツのポスター、App、ボタンなどのインターフェイス要素を検索し、各項目が表示されたときにハイライトで表示します。ハイライトで表示された項目は、フォーカスされたまたはフォーカスが合っている状態です。UIKitのフォーカスエンジンは、tvOSのフォーカスと動作を制御し、リモコンやゲームコントローラがきっかけのフォーカス動作イベントの受信に従い、Appに通知することで、適切なエクスペリエンスを提供します。tvOSのすべての標準的なジェスチャは、デフォルトでは指向性リモコンで動作します。また、「UITapGestureRecognizer」のようなクラスを使って、Appでカスタムジェスチャのサポートを提供することもできます。

About focus interactions for Apple TV

指向性リモコンにカスタムジェスチャを適応させる Appのインターフェイス内で、特別なアクションを制御するカスタムジェスチャをサポートしている場合は、「UITapGestureRecognizer」を追加して、明確な方向性のイベントに関連付けられます。

UITapGestureRecognizer

Learn more about detecting gestures and button presses

Explore the App Programming Guide for tvOS

専用チャンネルとガイドボタンでリモコンをサポート 一部のAppleTV互換リモコンには、専用のガイドボタンと上下の矢印があり、チャンネルの変更と電子番組ガイドのページング機能を制御できます。Appにチャンネルまたはプログラミングガイドが含まれている場合は、TVサービスフレームワークを介して専用ボタンを使用して、リモートでこれらのやり取りをサポートできます。

Providing Channel Navigation

カスタムビデオプレーヤーでの再生インタラクションをサポートする

Appにビデオコンテンツが含まれている場合は、 「AVPlayerViewController」を使用して、すべてのリモートタイプで最高のエクスペリエンスを提供できます。ただし、カスタムビデオプレーヤーを作成した場合は、「UITapGestureRecognizer」で特定のリモコンボタンを再生インタラクションに関連付けしたり、「MPRemoteCommandCenter」でメディアプレーヤーイベントを処理したりすることができます。

MPRemoteCommandCenter

Becoming a now playable app

Remote command center events

再生と一時停止 Appでコンテンツを再生するとき、選択、再生、一時停止、または再生/一時停止を押すと、再生状態が更新され、プレーヤートランスポートバーが表示されます。 カスタムプレーヤーでこれらのインタラクションを処理するには、「UITapGestureRecognizer」と「MPRemoteCommandCenter」を使用する必要があります。

前方スキップと後方スキップ 指向性リモコンを使用している場合、方向パッドの左または右を押すことで、ビデオを適切な方向にスキップできます。さらに、リモコンによっては、この機能に関連付けられる専用の前方スキップボタンや後方スキップボタンが用意されています。コンテンツを前後に移動できるようにするには、「UITapGestureRecognizer」と「MPRemoteCommandCenter」を使って、正しいジェスチャを作成します。

早送りと巻き戻し 使用するリモコンに応じて、さまざまな方法でコンテンツを早送りや巻き戻しができます。 早送りや巻き戻し専用のボタンを備えたリモコンもあれば、左または右の方向パッドボタンを長押しすることで早送りや巻き戻しができるリモコンもあります。


*注: tvOSでは、次のUIラベルを使用して、該当するサポートされたプレーヤーレートとペアリングすることをお勧めします。

tvOSの再生レートに対応するUIラベル 1x = 8.0 2x = 24.0 3x = 48.0 4x = 96.0


専用の早送りボタンと巻き戻しボタン 専用の早送りボタンと巻き戻しボタンを備えたリモコンでは、ボタンを短く押すと、前方か後方への連続シークが開始されます。その後、そのボタンを押すたびに、シークレートが上がります。最大のシークレートを超えると、プレーヤーは通常の再生レートに戻ります。シーク中に反対側のボタンを押すと、シークレートが低下します。その後、ボタンを押すたびに、通常の再生速度に戻るまで、シークレートが低下し続けます。

「MPRemoteCommandCenter」の「changePlaybackRateCommand」を使用して、Appでこれらのコントロールをサポートできます。また、 「MPChangePlaybackRateCommandEvent」の「playbackRate」プロパティを使用してプレーヤーレートを更新することも忘れないでください。

専用の早送りボタンや巻き戻しボタンを押したままの場合、「MPRemoteCommandCenter」 は 「seekForwardCommand」 や「seekBackwardCommand」 を起動します。登録されたターゲットは 「MPSeekCommandEventType.beginSeeking」を受け取り、Appはプレーヤーを希望のシークレートに設定します。ボタンを離すと、Appは 「MPSeekCommandEventType.endSeeking」というケースの新しいコマンドイベントを受け取り、プレーヤーレートを通常に戻すように指示します。

方向パッドの早送りと巻き戻し 左または右の方向パッドボタンを長押しした場合、Appは前方または後方にそれぞれシークし、シークレートを更新します。シーク中に、左また右の方向パッドボタンを短く押すと、前のセクションで説明したようにシークレートを更新できます。

カスタムビデオプレーヤーに早送りと巻き戻しを採用 これらのジェスチャをすべてのリモコン用のAppに組み込むには、「MPRemoteCommandCenter」、「UITapGestureRecognizer」、「UILongPressGestureRecognizer」を使用する必要があります。

カスタムプレーヤーでの追加のインタラクションをサポートする

上または下のスワイプまたはプレスが、プレスまたは上にスワイプでプレーヤーコントロールとトランスポートバーを表示したり、スワイプまたはプレスダウンで情報パネルを表示したりするなど、ビデオ再生中に一貫したエクスペリエンスを提供することを期待しています。

トランスポートバー コンテンツにどれだけの時間が残っているかを見ることができます。方向パッドを上にスワイプまたは押し上げると、プレーヤーを停止または一時停止することなく、プレーヤーのトランスポートバーが表示されます。

情報パネル コンテンツの視聴中に、他のオプションと同様に、字幕や音声の選択にアクセスできるようにしなければなりません。方向パッドを下にスワイプまたは押し下げると、プレーヤーを停止または一時停止することなく、これらのオプションが表示されます。

ユーザーを管理下に置く Apple TVでどのようなインタラクション方法を選択しても、すべてのリモコンに対してAppで優れたエクスペリエンスを提供することで、ユーザーが制御を維持できるようにすることができます。AVFoundationやAVKitのようなシステムフレームワークを使い、「UITapGestureRecognizer」や「MPRemoteCommandCenter」でカスタムジェスチャやメディアインタラクションをサポートすれば、簡単に実現できます。そうすることで、Appの操作方法を気にせずにコンテンツを楽しむことができます。