コンテンツが Web レシーバにキャストされている場合、ユーザーは常に送信側アプリからコンテンツを制御できる必要があります。
注: Google Cast SDK 追加デベロッパー利用規約に準拠して、Cast メディア アプリケーションは、SDK で定義された再生制御 API(メディア再生メッセージ)を使用して、ウェブ レシーバでのメディア再生を制御する必要があります。
送信側アプリは、以下の領域に Cast コントロールを提供する必要があります。
送信側アプリのキャスト再生ステータスとコントロールは、送信側アプリから発信されたものではない場合でも、ウェブ レシーバで発生した再生の変更と同期している必要があります。これにより、マルチ送信者コマンドと、デバイスのリモコンやボタンなどから送信される再生コントロールの両方を適切に処理できます。
Android
キャスト ダイアログのコントロール

ミニ コントローラ

通知管理

画面制御のロック

iOS
キャスト ダイアログのコントロール

ミニ コントローラ

Chrome
キャスト ダイアログのコントロール

ミニ コントローラ

送信者の音量調節
送信側アプリでは、送信側デバイスのハードウェア音量ボタンやソフトウェア音量スライダーを使用して、テレビやスピーカーで再生中のコンテンツの音量をユーザーが調整できるようにする必要があります。これらは、次のいずれかを制御します。
- Chromecast などの Google Cast デバイスでテレビに送信される音声レベル。
- Google Cast 対応テレビ、Android TV 内蔵テレビ、スマート スピーカーの実際のネイティブ テレビ/スピーカーの音量。
必須
A 送信側アプリは、送信側デバイスのハードウェア音量ボタンやソフトウェア音量スライダーを使用して、テレビやスピーカーで再生中のコンテンツの音量をユーザーが調整できるようにしなければなりません。
- Android: ハードウェア ボタンとソフトウェアの音量スライダーの両方のサポートが必須です。
- iOS: ソフトウェアの音量スライダーは必須です。
- ウェブ/Chrome: ソフトウェア音量スライダーのサポートが必須です。
B モバイル デバイスでは、キャスト中にキャスト ダイアログでソフトウェア音量スライダーを利用できる必要があります。
C 送信側アプリの音量スライダーは、ウェブ レシーバに接続した後、現在のウェブ レシーバの音量と同期し、同期を維持する必要があります。
D 送信側アプリの音量スライダーは、他の送信側または Chromecast アプリのリモコンによって行われた音量の変更を反映する必要があります。
E 送信側アプリは、音量を事前定義されたレベルに設定してはなりません。ユーザーが開始した音量の変更のみを渡す必要があります。
F Android のみ: ハードウェア ボタンを使用してウェブ レシーバーの音量を変更する場合、ハードウェアの音量ボタンを押すと、音量スライダー(左側にキャスト アイコン付き)が表示されなければなりません。注: Android Gingerbread(バージョン 2.3)では、キャスト アイコンは表示されません。
おすすめの方法
- 音量を上げる:
- Android: フレームワークが音量を自動的に増やします。
- iOS と Chrome: ハードウェアの音量ボタンについては、音声/動画デバイスの場合はウェブ レシーバ デバイスの音量範囲の 5% 以下の増分、音声専用デバイスの場合はウェブ レシーバ デバイスの音量範囲の 2% の増分を使用します。
送信者の拡張コントローラ
センダーアプリは、キャストするコンテンツの拡張コントローラを提供する必要があります。
必須
A コンテンツのタイトルまたはアートワークを表示して、キャスト中のコンテンツを特定します。
B 再生が開始される前に、読み込みインジケーターとコンテンツのタイトルまたはアートワークを表示します。
C コンテンツの開始時に、ウェブ レシーバの状態を特定します。
D 関連するコントロールを提供します。
E シークバーの左端に現在の再生時間を表示します。
右端に、配信の合計時間(ライブ配信でない場合で、時間がわかっている場合)を表示します。
F キャストに関連しないコントロールを非表示にします。
G ユーザーが拡張コントローラから移動しても、キャストの接続を解除したり、キャストを停止したりしないでください。
H ユーザーが移動したときに、拡張コントローラに戻る簡単な方法を提供します。
おすすめの方法
- メディア ストリームの再生位置スライダーを提供します。
- コンテンツに関連するその他の意味のあるアートワークとメタデータを表示します。
- メディア ストリームの経過時間とコンテンツの再生時間を特定します。
Android
送信者のコンテンツの読み込み

レシーバーのコンテンツの読み込み

送信側のコンテンツの再生

コンテンツを再生する Web Receiver

iOS
送信者のコンテンツの読み込み

Web Receiver のコンテンツの読み込み

送信側のコンテンツの再生

コンテンツを再生する Web Receiver

Chrome
送信者のコンテンツの読み込み

Web Receiver のコンテンツの読み込み

送信側のコンテンツの再生

コンテンツを再生する Web Receiver

送信者ミニ コントローラ
キャスト中に、ユーザーが現在のコンテンツ ページまたは拡張コントローラからセンダーアプリ内の別のビューに移動すると、ミニ コントローラと呼ばれる小さな永続的なコントロールが表示されます。ミニ コントローラは、現在のキャストを視覚的に確認できるもので、すぐにアクセスできます。
必須
A 送信側アプリの下部に、キャスト中のコンテンツを表示するバーまたはボックスが表示されます。ユーザーがアプリの他のコンテンツやセクションを閲覧している間も、このコントロールは表示されたままになります。
B コントロールは、シンプルで、キャスト中のコンテンツが伝わるようにすると、最も効果的です。
C アプリのすべての画面(拡張コントローラ ページを除く)で使用できます。
D コンテンツ領域をタップすると、コントローラが展開されます。
E 迅速な対応に関連するその他の制御を提供します。
ベスト プラクティス
最適なユーザー エクスペリエンスを実現するには、ミニ コントローラに加えて、キャスト ダイアログにもコントロールを提供します。
Android
送信者のミニ コントローラ

Web Receiver のコンテンツが一時停止された

iOS
送信者のミニ コントローラ

Web Receiver のコンテンツが一時停止された

Chrome
送信者のミニ コントローラ

Web Receiver のコンテンツが一時停止された

送信者通知
必須(Android のみ)
A ステータスバーの通知にアプリのアイコン(キャスト アイコンではない)を使用します。
B どのコンテンツがキャスト中であるかを特定します。たとえば、コンテンツのタイトルやアートワークを表示します。
C どの Web Receiver がキャストしているかを特定します。
D 基本的なコンテンツ管理機能を提供します。
E アクションの行に、キャストを停止してウェブ レシーバから切断するための「X」を表示します。
F アプリのロゴ、コンテンツのタイトル、アートワークをタップすると、送信側アプリの拡張コントローラが開く必要があります。
注
- Android のみ: iOS や Chrome で通知を実装することはできません。
- Android Gingerbread(バージョン 2.3)では、通知にアプリのアイコンとテキストのみが表示され、再生/一時停止や停止は表示されません。
- 詳しくは、通知にメディア コントロールを追加するをご覧ください。
Android
送信者の通知アイコン

コンテンツを再生する Web Receiver

送信者の通知管理

コンテンツを再生する Web Receiver

送信者のロック画面
必須(Android のみ)
A コンテンツのタイトルまたはアートワークを使用して、コンテンツのキャストを識別します。
B どの Web Receiver がキャストしているかを特定します。なお、音楽アプリではこの要件は不要です。
C 再生コントロールを提供します。
D ハードウェア ボタンで音量調節にアクセスできるようにします。
Android 4.4(KitKat)以降のバージョンで必須:
- アプリのアイコン
- アートワーク(アルバムカバーなど)
- キャストされているコンテンツ(「Tears of Steel」など)をテキストで特定する
- どのウェブ レシーバがキャストしているかを確認します(例: 「リビングルーム」)。
Android 4.3 Jelly Bean で必須:
- アートワーク(アルバムカバーなど)
- キャストされているコンテンツ(「Tears of Steel」など)をテキストで特定する
- どのウェブ レシーバがキャストしているかを確認します(例: 「リビングルーム」)。
注
- Android のみ: iOS や Chrome で通知を実装することはできません。
- ロック画面のコントロールは、Android 4.1 以降のバージョンで必須です。
- Android オペレーティング システムのバージョンによって使用できるコントロールが異なり、ロック画面にはテキスト フィールドのみを表示できます。一般的に、グラフィックやアイコンはテキストよりもコンテンツをすぐに説明できます。
- スマートフォンのロック中に、音量調節ハードウェア ボタンで送信側アプリの音量を調節できる必要があります。
- コントロールは、フレームワーク コンポーネント
MediaSession
またはMediaSessionCompat
(バージョン 4.4 および 4.3 の場合)、Notification
(5.0 以降の場合)を使用する必要があります。
Android
送信者のロック画面コントロール

コンテンツを再生する Web Receiver

送信者がキャストを再開
接続された送信側アプリは、暗黙的な切断(ネットワークの切断、デバイスのスリープ、バッテリー切れなど)の後に接続状態を復元する必要があります。
必須
A 送信側アプリが暗黙的に切断された場合(ユーザーが明示的にキャストを停止または切断しなかった場合)、キャストされたコンテンツはウェブ レシーバで再生を継続する必要があります。アプリまたは接続が再起動された場合、Web Receiver セッションがまだ有効である限り、送信側アプリは Web Receiver への接続を復元する必要があります。
B キャスト ボタンが接続状態に戻る。
C 送信側が再接続する前にユーザーがキャスト ボタンをタップすると、ウェブ レシーバ デバイスのリストが表示されます。ユーザーが現在キャスト中のウェブ レシーバを選択すると、送信側アプリにミニ コントローラまたは拡張コントローラが表示されます。
注
停電やコンテキスト外の割り込みなどにより、ウェブ レシーバ アプリが切断され、実行を停止することもあります。これは、送信者がキャストを停止するで説明されているように、通常のセッション終了として扱われます。
Android
アプリを選択する

コンテンツを再生する Web Receiver

キャスト接続が復元されました

コンテンツを再生する Web Receiver

iOS
アプリを選択する

コンテンツを再生する Web Receiver

キャスト接続が復元されました

コンテンツを再生する Web Receiver

送信者がキャストを停止する
テレビにキャストされたコンテンツは、ユーザーが [キャストを停止] を選択するか、送信者が新しいコンテンツをキャストするまで再生が続きます。複数の送信者が同じウェブ レシーバに接続されている場合、各送信者アプリのキャスト ダイアログに [キャストを停止] ボタンではなく [切断] ボタンが表示されるようにします。
必須
A 複数の送信者がウェブ レシーバに接続されている場合、1 つの送信者アプリからキャストの停止を押しても、ウェブ レシーバには何も影響せず、その送信者デバイスからキャストのコントロールと通知が削除されます。接続されている残りの送信側デバイスは、キャスト コントロールが利用可能な状態で接続されたままになります。
B 送信側アプリが暗黙的に切断された場合(送信側デバイスのバッテリー切れ、送信側デバイスのウェブ レシーバへのネットワーク接続の切断など)、ウェブ レシーバには何も行われず、送信側デバイスからキャスト コントロールと通知が削除されます。送信側アプリは暗黙的な切断を追跡し、送信側アプリが再び開かれたときに Web レシーバへの再接続を試みる必要があります。
Android
キャスト ダイアログ、切断ボタン

コンテンツを再生する Web Receiver

iOS
キャスト ダイアログ、切断ボタン

コンテンツを再生する Web Receiver

Chrome
キャスト ダイアログ、切断ボタン

コンテンツを再生する Web Receiver

このデザイン ガイドで使用されている画像は、Blender Foundation の提供によるもので、著作権またはクリエイティブ・コモンズ ライセンスに基づいて共有されています。
- Elephant's Dream: (c) copyright 2006, Blender Foundation / Netherlands Media Art Institute / www.elephantsdream.org
- Sintel: (c) コピーライト: Blender Foundation | www.sintel.org
- Tears of Steel: (CC) Blender Foundation | mango.blender.org
- Big Buck Bunny: (c) copyright 2008, Blender Foundation / www.bigbuckbunny.org