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

ミニ コントローラ

通知コントロール

画面制御のロック

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

ミニ コントローラ

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

ミニ コントローラ

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

受信者のコンテンツを読み込んでいます

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

ウェブ レシーバーがコンテンツを再生している

iOS
送信者のコンテンツを読み込んでいます

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

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

ウェブ レシーバーがコンテンツを再生している

Chrome
送信者のコンテンツを読み込んでいます

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

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

ウェブ レシーバーがコンテンツを再生している

送信者のミニ コントローラ
ミニ コントローラという小さな永続的なコントロールが表示されます。これは、ユーザーがキャスト中に現在のコンテンツ ページや拡張コントローラから送信して、アプリ内の別のビューに移動すると、ミニ コントローラとして表示されます。ミニ コントローラは現在のキャストをリマインドして、すぐにアクセスできます。
必須
A 送信アプリの下部付近にキャストしている要素を表示するバーまたはボックス。このコントロールは、ユーザーがアプリの他のコンテンツやセクションを閲覧している間も保持されます。
B コントロールは、キャストしていてキャストを行っていることを伝達するときに最適です。
C アプリのすべての画面で利用できます(拡張されたコントローラ ページを除く)。
D コンテンツ領域をタップすると、拡張されたコントローラが開きます。
E 早急な対応が必要な他のコントロールがあれば提示します。
おすすめの方法
最適なユーザー エクスペリエンスを実現するには、ミニ コントローラに加えて、キャスト ダイアログでコントロールを指定します。
Android
送信者のミニ コントローラ

ウェブレシーバーのコンテンツを一時停止しました

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

ウェブレシーバーのコンテンツを一時停止しました

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

ウェブレシーバーのコンテンツを一時停止しました

送信者の通知
必須(Android のみ)
A ステータスバー内の通知には、アプリアイコン(キャスト アイコンではない)を使用します。
B キャストしているコンテンツを確認します。たとえば、コンテンツのタイトルやアートワークを表示します。
C
キャスト元のウェブ レシーバーを確認します。
D 基本的なコンテンツ管理を行う。
E 「X」を入力して、キャストを停止し、アクションの行でウェブレシーバーから切断します。
F アプリのロゴ、コンテンツのタイトル、アートワークをタップすると、送信者アプリの展開済みコントローラが開くはずです。
注意事項
- Android のみ: iOS または Chrome では通知を実装できません。
- Android Gingerbread(バージョン 2.3)では、通知にはアプリのアイコンとテキストのみが表示され、再生/一時停止や停止は行われません。
- 詳細については、通知にメディア コントロールを追加するをご覧ください。
Android
送信者の通知アイコン

ウェブ レシーバーがコンテンツを再生している

送信者の通知の管理

ウェブ レシーバーがコンテンツを再生している

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

ウェブ レシーバーがコンテンツを再生している

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

ウェブ レシーバーがコンテンツを再生している

キャストの接続を復元しました

ウェブ レシーバーがコンテンツを再生している

iOS
アプリを選択する

ウェブ レシーバーがコンテンツを再生している

キャストの接続を復元しました

ウェブ レシーバーがコンテンツを再生している

送信者がキャストを停止する
テレビにキャストされているコンテンツは、ユーザーが [キャストを停止] を選択するか、送信者が新しいコンテンツをキャストするまで再生が継続されます。複数の送信者が同じウェブレシーバーに接続されている場合、各送信者アプリには、キャスト ダイアログに [キャストを停止] ボタンではなく [切断] ボタンが表示されます。
必須
A 複数の送信者がウェブレシーバーに接続されている場合、1 つの送信者アプリからの [キャストを停止] を押してもレシーバーは実行されず、その送信者のデバイスからキャスト コントロールと通知が削除されます。接続済みの残りの送信デバイスには、引き続きキャスト コントロールを使用できます。
B 送信側アプリが暗黙的に切断した場合(たとえば、送信側デバイスのバッテリーが切れた場合や、送信側デバイスがウェブ受信機に接続された場合)、ウェブ受信側は何も処理せず、送信側デバイスからキャスト コントロールと通知が削除されます。送信側アプリは、暗黙的な接続解除を追跡し、送信側アプリが再び開かれたときにウェブレシーバーへの再接続を試行します。
Android
キャスト ダイアログ、切断ボタン

ウェブ レシーバーがコンテンツを再生している

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

ウェブ レシーバーがコンテンツを再生している

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

ウェブ レシーバーがコンテンツを再生している

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