概要

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 ロジック
または
  • アプリにカスタム スタイルが必要です
かつ
  • スタイル付きメディア レシーバーのスタイル設定機能が不十分である
次の場合にスタイル付きメディア レシーバーを作成する。
  • アプリにカスタム スタイルが必要です
かつ
  • スタイル付きメディア レシーバーのスタイル設定で十分
かつ
  • 上記の特別な機能をアプリに必要ない
デフォルトのメディア レシーバーを使用する:
  • メディア形式がサポートされている
かつ
  • アプリにはカスタム スタイル設定は不要
かつ
  • 上記の特別な機能をアプリに必要ない