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