概要

Cast SDK では、ユーザーはセンダーを使用してストリーミング映像と音声のコンテンツを選択し、レシーバーと呼ばれる別のデバイスで再生(またはキャスト)しながら、センダーを使用して再生を制御できます。

センダーという用語は、キャスト セッションでコントローラの役割を果たすアプリを指します。センダーはキャスト セッションを開始し、ユーザーとのコンテンツの操作を管理します。

モバイルアプリ、Google Chrome ウェブアプリなど、さまざまなセンダーのほか、タップ対応の Google Home デバイスの仮想コントロール サーフェスがあります。Chrome ウェブブラウザのメディア コントロールは、Google アシスタント自体と同様に、送信者として機能します。

レシーバという用語は、Cast 対応デバイスで動作するアプリを指し、センダーからのコマンドへの応答と、オンライン ストリーミング サービスから Cast 対応デバイスにストリーミング コンテンツを転送する役割を担います。Cast 対応レシーバー デバイスの例としては、Chromecast、スマートテレビ、スマート スクリーン、スマート スピーカーなどがあります。

Cast SDK は、1 つのキャスト セッションに接続する複数のセンダーもサポートしています。たとえば、あるセンダーがレシーバーでセッションを開始し、別のセンダーが同じセッションに参加して、再生の制御、新しいコンテンツの読み込み、または後のために追加のコンテンツをキューに入れるといったことができます。

アプリ コンポーネントとアーキテクチャ

Google Cast は、AndroidiOSCast 対応ウェブ プラットフォーム(Google Chrome など)向けのセンダーアプリの開発に対応しています。

レシーバーアプリは Cast 対応デバイスで動作します。以下に例を示します。

  • 高解像度のテレビまたはサウンド システムに接続されている Chromecast。
  • Cast 対応テレビ。
  • Cast 対応のスマートディスプレイ。
  • Cast 対応の Android デバイス(Android TV など)

大まかな Cast アーキテクチャ

センダーは、SDK で定義されたメディア再生メッセージを使用して、レシーバーでのメディア再生を制御します。アプリのユースケースで、標準のメディア再生メッセージで正式に定義されていないデータを送信する必要がある場合は、複数のメッセージ タイプで提供される customData フィールドを使用して補助データを渡すことができます。

Cast アプリの開発には、2 つの基本的なシナリオがあります。

  1. エンドツーエンドのキャストベース ソリューション。このシナリオでは、デベロッパーは Sender アプリと、Android TV Receiver と Web Receiver の 2 つの Receiver アプリの両方を作成する必要があります(これについては後述します)。
  2. Google のデフォルトのキャスト レシーバー(デフォルトのメディア レシーバー)にコンテンツ(画面またはマルチメディア ストリーム)をキャストできる Cast 対応センダーアプリ。このシナリオでは、デベロッパーは 1 つのアプリ(送信者)を作成するだけで済みます。デフォルトのメディア レシーバーは、極めて限られた再生シナリオの学習に役立ちます。カスタムのビジネス ロジック、認証情報、著作権管理、分析を必要とするレシーバーには現実的ではありません。

Google Cast SDK

Google Cast SDK は複数の Cast API ライブラリで構成されています。API に加えて、次の 2 種類のドキュメントがあります。

Cast API は、プラットフォームと Cast アプリのタイプに応じて分けられています。表 1 に、さまざまな Cast API のガイドへのリンクを示します。

表 1: Cast SDK ガイド
プラットフォーム ギフトの送り主 レシーバー
Android Android センダーアプリ Android TV レシーバーの概要
ウェブ Web Sender アプリ Web Receiver の概要
iOS iOS センダーアプリ なし

送信元アプリのタイプ

センダーアプリは、次の 3 つのプラットフォームで実行できます。

  • ウェブ
  • Android
  • iOS

送信者タイプの選択は、サポートする送信者プラットフォームによって大きく左右される可能性が高くなりますが、各タイプの送信者の機能と制限を理解しておくことが重要です(表 3 を参照)。

表 3: 送信者の比較
可能な操作 Android 送信者 iOS 送信者 ウェブ送信者
メディア ストリーム内のミッドロール挿入点とコンパニオン広告
スタイル付きテキスト トラック
メディア トラックのグループ化、スタイル設定、有効化
自動再生とキューイング(編集、並べ替え、更新)
カスタム チャネル
カスタム アクション
コントローラとミニコントローラを含む、完全なキャスト UI
参加の目的

Receiver アプリの種類

レシーバー アプリは、センダー アプリとキャスト デバイス間の通信を処理します。 レシーバーには主に、ウェブ レシーバーと Android TV レシーバーの 2 種類があります。アプリでのユーザー エクスペリエンスを最大限に高めるために、少なくともウェブ レシーバーを用意するとともに、Android TV レシーバーを用意することをおすすめします。

Web Receiver には 3 つのタイプがあり、それぞれ品質と機能が異なります。

  • カスタム レシーバー: カスタム ロジック、ブランディング、コントロールの変更を可能にします。
  • スタイル付きメディア レシーバー。カスタマイズされたブランディングを可能にします。
  • デフォルト レシーバー: 最も基本的なタイプです。この方法ではカスタマイズが不可能になるため、本番環境アプリには適していません。

Android TV レシーバーは、カスタム レシーバーの機能に加えて、キャスト接続機能を提供します。これは、Cast と Android TV をシームレスに組み合わせてユーザーにネイティブなエクスペリエンスを提供する一連の機能です。

表 2 に、各レシーバの機能を示します。

表 2: レシーバーの比較
Android TV レシーバー カスタム レシーバー スタイル付きメディア レシーバー(SMR) デフォルトのメディア レシーバー
プラットフォーム
Android ベース(Java/Kotlin)
ウェブベース(HTML5)
要件
登録が必要
機能
HLS と DASH メディアの再生
タップ操作のサポート
アシスタント搭載デバイスからの音声コマンドを処理する
カスタマイズ可能なビジュアル スタイルとブランディング
カスタム メッセージを処理する
Cast Connect

Web Receiver の 3 つのオプションのどちらを選択するかは、アプリがサポートする必要があるメディアタイプ、必要な UI のカスタマイズの度合い、カスタム ロジックの要件によって異なります。

作成する Web Receiver のタイプを決定する

アプリを Cast と統合できる場合は、次のプロンプトを使用して、作成するウェブ レシーバーの種類を判断します。

次の場合はカスタム レシーバーを作成します。
アプリには以下の特別な機能が 1 つ以上必要です。

  • スタイル設定は、スタイル付きメディア レシーバーでは提供されない。
  • タップ操作の変更
  • 認可または認証
  • 受信者の分析
  • DRM ライセンスはマニフェストとは別に提供されます
  • 広告の開始前、途中、後
  • その他のカスタム Receiver 機能やカスタム JavaScript ロジック
または
  • アプリにカスタム スタイルが必要です
かつ
  • スタイル付きメディア レシーバーのスタイル設定機能が不十分である
次の場合にスタイル付きメディア レシーバーを作成する。
  • アプリにカスタム スタイルが必要です
かつ
  • スタイル付きメディア レシーバーのスタイル設定で十分
かつ
  • 上記の特別な機能をアプリに必要ない
デフォルトのメディア レシーバーを使用する:
  • メディア形式がサポートされている
かつ
  • アプリにはカスタム スタイル設定は不要
かつ
  • 上記の特別な機能をアプリに必要ない