Cast SDK では、ユーザーはセンダーを使用してストリーミング映像と音声のコンテンツを選択し、レシーバーと呼ばれる別のデバイスで再生(またはキャスト)しながら、センダーを使用して再生を制御できます。
センダーという用語は、キャスト セッションでコントローラの役割を果たすアプリを指します。センダーはキャスト セッションを開始し、ユーザーとのコンテンツの操作を管理します。
モバイルアプリ、Google Chrome ウェブアプリなど、さまざまなセンダーのほか、タップ対応の Google Home デバイスの仮想コントロール サーフェスがあります。Chrome ウェブブラウザのメディア コントロールは、Google アシスタント自体と同様に、送信者として機能します。
レシーバという用語は、Cast 対応デバイスで動作するアプリを指し、センダーからのコマンドへの応答と、オンライン ストリーミング サービスから Cast 対応デバイスにストリーミング コンテンツを転送する役割を担います。Cast 対応レシーバー デバイスの例としては、Chromecast、スマートテレビ、スマート スクリーン、スマート スピーカーなどがあります。
Cast SDK は、1 つのキャスト セッションに接続する複数のセンダーもサポートしています。たとえば、あるセンダーがレシーバーでセッションを開始し、別のセンダーが同じセッションに参加して、再生の制御、新しいコンテンツの読み込み、または後のために追加のコンテンツをキューに入れるといったことができます。
アプリ コンポーネントとアーキテクチャ
Google Cast は、Android、iOS、Cast 対応ウェブ プラットフォーム(Google Chrome など)向けのセンダーアプリの開発に対応しています。
レシーバーアプリは Cast 対応デバイスで動作します。以下に例を示します。
- 高解像度のテレビまたはサウンド システムに接続されている Chromecast。
- Cast 対応テレビ。
- Cast 対応のスマートディスプレイ。
- Cast 対応の Android デバイス(Android TV など)
センダーは、SDK で定義されたメディア再生メッセージを使用して、レシーバーでのメディア再生を制御します。アプリのユースケースで、標準のメディア再生メッセージで正式に定義されていないデータを送信する必要がある場合は、複数のメッセージ タイプで提供される customData
フィールドを使用して補助データを渡すことができます。
Cast アプリの開発には、2 つの基本的なシナリオがあります。
- エンドツーエンドのキャストベース ソリューション。このシナリオでは、デベロッパーは Sender アプリと、Android TV Receiver と Web Receiver の 2 つの Receiver アプリの両方を作成する必要があります(これについては後述します)。
- Google のデフォルトのキャスト レシーバー(デフォルトのメディア レシーバー)にコンテンツ(画面またはマルチメディア ストリーム)をキャストできる Cast 対応センダーアプリ。このシナリオでは、デベロッパーは 1 つのアプリ(送信者)を作成するだけで済みます。デフォルトのメディア レシーバーは、極めて限られた再生シナリオの学習に役立ちます。カスタムのビジネス ロジック、認証情報、著作権管理、分析を必要とするレシーバーには現実的ではありません。
Google Cast SDK
Google Cast SDK は複数の Cast API ライブラリで構成されています。API に加えて、次の 2 種類のドキュメントがあります。
- API では、キャスト機能を示すサンプルコードにより API の使用方法を確認できます。
- Codelab チュートリアル: 特定の種類のキャストアプリの開発プロセスを説明する。
Cast API は、プラットフォームと Cast アプリのタイプに応じて分けられています。表 1 に、さまざまな Cast API のガイドへのリンクを示します。
プラットフォーム | ギフトの送り主 | レシーバー |
---|---|---|
Android | Android センダーアプリ | Android TV レシーバーの概要 |
ウェブ | Web Sender アプリ | Web Receiver の概要 |
iOS | iOS センダーアプリ | なし |
送信元アプリのタイプ
センダーアプリは、次の 3 つのプラットフォームで実行できます。
- ウェブ
- Android
- iOS
送信者タイプの選択は、サポートする送信者プラットフォームによって大きく左右される可能性が高くなりますが、各タイプの送信者の機能と制限を理解しておくことが重要です(表 3 を参照)。
可能な操作 | Android 送信者 | iOS 送信者 | ウェブ送信者 |
---|---|---|---|
メディア ストリーム内のミッドロール挿入点とコンパニオン広告 | |||
スタイル付きテキスト トラック | |||
メディア トラックのグループ化、スタイル設定、有効化 | |||
自動再生とキューイング(編集、並べ替え、更新) | |||
カスタム チャネル | |||
カスタム アクション | |||
コントローラとミニコントローラを含む、完全なキャスト UI | |||
参加の目的 |
Receiver アプリの種類
レシーバー アプリは、センダー アプリとキャスト デバイス間の通信を処理します。 レシーバーには主に、ウェブ レシーバーと Android TV レシーバーの 2 種類があります。アプリでのユーザー エクスペリエンスを最大限に高めるために、少なくともウェブ レシーバーを用意するとともに、Android TV レシーバーを用意することをおすすめします。
Web Receiver には 3 つのタイプがあり、それぞれ品質と機能が異なります。
- カスタム レシーバー: カスタム ロジック、ブランディング、コントロールの変更を可能にします。
- スタイル付きメディア レシーバー。カスタマイズされたブランディングを可能にします。
- デフォルト レシーバー: 最も基本的なタイプです。この方法ではカスタマイズが不可能になるため、本番環境アプリには適していません。
Android TV レシーバーは、カスタム レシーバーの機能に加えて、キャスト接続機能を提供します。これは、Cast と Android TV をシームレスに組み合わせてユーザーにネイティブなエクスペリエンスを提供する一連の機能です。
表 2 に、各レシーバの機能を示します。
Android TV レシーバー | カスタム レシーバー | スタイル付きメディア レシーバー(SMR) | デフォルトのメディア レシーバー | |
---|---|---|---|---|
プラットフォーム | ||||
Android ベース(Java/Kotlin) | ||||
ウェブベース(HTML5) | ||||
要件 | ||||
登録が必要 | ||||
機能 | ||||
HLS と DASH メディアの再生 | ||||
タップ操作のサポート | ||||
アシスタント搭載デバイスからの音声コマンドを処理する | ||||
カスタマイズ可能なビジュアル スタイルとブランディング | ||||
カスタム メッセージを処理する | ||||
Cast Connect |
Web Receiver の 3 つのオプションのどちらを選択するかは、アプリがサポートする必要があるメディアタイプ、必要な UI のカスタマイズの度合い、カスタム ロジックの要件によって異なります。
作成する Web Receiver のタイプを決定する
アプリを Cast と統合できる場合は、次のプロンプトを使用して、作成するウェブ レシーバーの種類を判断します。
次の場合はカスタム レシーバーを作成します。 | |||||
アプリには以下の特別な機能が 1 つ以上必要です。
|
または |
|
次の場合にスタイル付きメディア レシーバーを作成する。 | |||||
|
デフォルトのメディア レシーバーを使用する: | |||||
|