オーディオ機器

オーディオ機器向け Google Cast は音声の再生のみをサポートしています。このガイドでは、音声のみのデバイス向けにキャスト アプリを最適化し、メモリ、CPU、ネットワーク帯域幅の需要の軽減を活用する方法について説明します。

音声用 Google Cast をサポートするアプリでは、次の点を考慮する必要があります。

  • オーディオ機器用 Google Cast では動画やグラフィックは表示されません。しかし、多くのオーディオ機器には、再生状態(再生中または一時停止)や進行状況などのメタデータを表示するディスプレイがあります。アプリは、このような重要な情報をレシーバーにのみ表示してはなりません。重要な情報とユーザー インターフェースの大部分は、送信側に表示しなければなりません。
  • Web Receiver アプリを適切に実行するには、オーディオ機器用 Google Cast でグラフィックが表示されなくても、グラフィックをレンダリングする必要があります。デバイスはハードウェア アクセラレーションによるグラフィック処理をサポートしていない場合があるため、レシーバ アプリは、カラー グラデーション、回転、アルファ ブレンディング、プログレスバーなどの大きなオブジェクトの再描画など、グラフィックを多用する処理を 1 秒あたり 1 回以上使用することは避ける必要があります。
  • オーディオ デバイス版 Google Cast は、デジタル著作権管理(DRM)で保護されたコンテンツの場合は Widevine のみをサポートします。
  • ほとんどのオーディオ機器向け Google Cast では、センダーアプリは Chromecast デバイスと同様に、テレビに入力された音源の音量だけでなく、デバイス(スピーカーなど)の全音量を制御します。
  • 送信側デバイス(スマートフォンなど)で再生をコントロールするだけでなく、リモコン、デバイス上のボタン、外部リモートアプリなど、デバイス独自のコントローラで再生をコントロールする機能が必要になる場合もあります。
  • オーディオ機器用 Google Cast は、デバイスの UI に応じて、小さな LCD 画面、HDMI 出力(サウンドバーやオーディオ ビデオ レシーバー用)、外部リモートアプリでコンテンツ メタデータの表示をサポートする場合があります。

開発

オーディオ用 Google Cast をサポートするキャストアプリを開発するには、まず、音声と動画用のキャストアプリを開発し、Chromecast で動作することを確認します。このドキュメントでは、そのようなアプリの開発とテストが完了していることを前提としています。

アプリは、音声のみのデバイスと音声のみのデバイスの両方をサポートすることがあります。具体的には、キャスト先デバイス間でのキャストのタイミングを把握し、所定のシナリオで最適なユーザー エクスペリエンスを実現するための対策を講じる必要があります。

たとえば、デュアル動画アプリとオーディオ アプリ(ローカル/NAS ファイル再生アプリなど)では、音声ファイルの再生をサポートするために、音声のみのデバイスへのキャストを有効にする必要がありますが、アプリでは、ユーザーが音声のみのデバイスに動画ファイルを送信できないようにする必要があります。アプリは、下記の送信側向けデバイス機能 API を使用して、デバイスに適したコンテンツを判定できます。

音声用の Google Cast をサポートするには、アプリが次の要件を満たしている必要があります。

  • 音声のみのサポート: 音楽、音声ファイル、ラジオなどのストリーミング。ウェブ レシーバー アプリにストリーミングされるメディアは、動画ストリームであってはなりません。また、アプリの起動時間とメモリ使用量を改善するため、グラフィックと画像のストリーミングは避けます。下記のメモリ使用のガイドラインをご覧ください。

  • Cast for Audio デバイスと通常の Chromecast の両方で、正常に動作します。

デバイスの機能

デバイス自体から利用可能な Device Capabilities API、または送信側 API または受信側 API を介して、アプリが音声のみのデバイスで実行されているかどうかを判断できます。

デバイスの HTTP ヘッダー

アプリの起動時にキャスト デバイスによって提供される CAST-DEVICE-CAPABILITIES HTTP ヘッダーには、デバイスの機能が記述されています。デバイスは、このヘッダーを含むリクエストを Web Receiver アプリをホストするサーバーに送信します。音声のみのデバイスのヘッダーには、CAST-DEVICE-CAPABILITIES: {"display_supported":false} でデバイスの機能が記述されます。

サーバーがデバイスからリクエストを受信すると、このヘッダーの情報を使用して、オーディオ デバイス向けに最適化された Web Receiver アプリにリクエストをリダイレクトできます。

Web Receiver API

Web Receiver アプリが読み込まれたときに CastReceiverManager.getDeviceCapabilities() を呼び出すことで、同じデバイス機能オブジェクトを取得できます。

詳細については、デバイスの機能をご覧ください。

Sender API

各 Cast センダー API には、デバイスの機能情報も含まれています。これにより、センダーアプリはレシーバーに送信するメディアの種類を判断できます。アプリが音声と動画の両方をサポートしている場合、音声のみのデバイスに動画コンテンツが送信されることを回避できます。また、設計チェックリストに記載されているとおり、アプリはデバイスに最も適した方法で音量を調整できます。送信者については、次のデバイス機能 API をご覧ください。

メモリ使用のガイドライン

オーディオ機器で動作する Web Receiver アプリは、メモリ使用量を次のように管理する必要があります。

  • 画像やグラフィック アセットをダウンロードしたり使用したりしないでください。メモリ使用量を削減し、再生開始までの時間を短くします。
  • Media Source Extensions(MSE)を使用する場合、アプリケーションはストリーム バッファを 2 MB に制限する必要があります。Media Player Library(MPL)を使用している場合、アプリのストリーム バッファサイズはすでに MPL によって定義されています。
  • HTMLMediaElement を使用する場合、アプリのストリーム バッファサイズは、ストリーム レートに基づいて Chrome によって定義されます。音声ビットレートを 2 メガビット/秒に制限します。これは、サポートされるメディアに記載されているすべてのコーデックをサポートします(最大 48 KHz / 16 ビット)。

音量調節

ほとんどのオーディオ機器向け Google Cast では、Chromecast デバイスと同様に、送信側アプリが音源の入力音量だけでなく、デバイスの全音量を制御します。つまり、音声のみのアプリでは、音量変更の増分を小さくする必要があります。アプリで音量調節を行う際のガイドラインについては、次のドキュメントをご覧ください。

デバイス コントロール

オーディオ機器向け Google Cast には、独自の再生コントロール(ボタン、リモコンなど)がある場合があります。メディア再生メッセージで説明されているように、urn:x-cast:com.google.cast.media 名前空間で定義されたメディア再生メッセージを使用して、レシーバー アプリで再生を制御します。レシーバー アプリは、デバイスの再生コントロールをサポートするため、これらのメディア再生メッセージをサポートする必要があります。

また、センダーアプリは、レシーバーからセンダーへのメッセージをサポートする必要があります。これにより、ユーザーがデバイス コントロールでメディアの状態を変更したときに、センダー アプリがレシーバーからステータス メッセージを受信し、それに応じて UI を更新できるようになります。

デバイスのディスプレイ

オーディオ機器用 Google Cast には、デバイスの LCD 画面や、メディア メタデータを表示するデバイス固有のコントロール アプリが搭載されていることがあります。レシーバー アプリは、すべての音声トラックにこのメタデータを提供し、現在再生中のコンテンツと同期して、メタデータがディスプレイに適切に表示されるようにする必要があります。アプリがカスタム メタデータを使用している場合は、下記の各プラットフォームで説明されているように、標準の音声メタデータ(トラック名、アーティスト名、アルバム タイトルなど)も提供する必要があります。

レシーバーは、メディアを読み込むときにセンダーからメタデータを取得します。センダーアプリでレシーバーにメディアを読み込むコマンドで、以下のフィールドを指定して、オーディオ用 Google Cast デバイスにメタデータが表示されるようにする必要があります。次の API を使用します。

キャストアプリがレシーバーまたはクラウド内のメディアキューを管理している場合、ウェブ レシーバーは、すべてのセンダーを同期させるために、urn:x-cast:com.google.cast.media 名前空間を使用してメディア ステータスの更新をブロードキャストする必要があります。

登録

オーディオ機器用の Google Cast をテスト用に登録し、オーディオ機器用の Google Cast をサポートするには Google Cast SDK Developer Console を使用してアプリを登録する必要があります。

  • デバイスの登録の詳細については、デバイスをご覧ください。
  • アプリを登録する際に、アプリがオーディオ機器用の Google Cast を検出できるようにするには、[音声のみのデバイスへのキャストをサポートする] チェックボックスをオンにする必要があります。アプリケーションを登録するをご覧ください。

非公開アプリ(テストに使用されるアプリなど)で音声のみのデバイスを検出するには、音声のみのデバイスをサポートするオプションも選択する必要があります。

Google Cast for Audio 2.0

Google Cast for Audio(GC4A)2.0 は、低メモリデバイスをターゲットとする次世代のキャスト オーディオ プラットフォームで、コンテンツをストリーミングできるデバイスのエコシステムを拡張します。

オーディオ アプリのデベロッパーが GC4A 2.0 でアプリをテストすることが重要です。GC4A 2.0 用の Cast アプリは、製品版の Bose スピーカー(Bose Smart Speaker 500 など)でテストできます。

テストのセットアップについてサポートが必要な場合や、Bose スピーカーを使用できない場合は、gc4a-support-external@google.com までお問い合わせください。アプリをデバッグする場合は、Cast Debug Logger の使用をおすすめします。