デバイス間のルーティング

ユーザーは、テレビ、ホームシアター システム、音楽プレーヤーをワイヤレス テクノロジーで接続するため、Android アプリのコンテンツをこうした大型の音量のあるデバイスで再生できるようにしたいと考えています。このような再生を可能にすることで、単一デバイス上の単一ユーザー向けのアプリを、複数のユーザー間で共有して楽しんでもらうことができます。

Android Media Router API は、一般的なユーザー インターフェースを使ってリモートの受信デバイスでメディアの表示と再生を行えるように設計されています。アプリ デベロッパーは、MediaRouter インターフェースを実装することでメディア ルーター フレームワークに接続でき、それによって、このフレームワークに参加しているデバイス上でコンテンツを再生できます。メディア再生デバイスのメーカーは、他のアプリから受信デバイスに接続してメディアを再生できるように MediaRouteProvider を公開することによって、このフレームワークに参加できます。図 1 は、アプリがメディア ルーター フレームワークを介して受信デバイスに接続する方法を示しています。

図 1. メディア ルート プロバイダ クラスがメディアアプリから受信デバイスに通信する仕組みの概要

注: アプリで Google Cast デバイスをサポートするには、Cast SDK を使用し、アプリを Cast センダーとしてビルドする必要があります。MediaRouter フレームワークを直接使用するのではなく、Cast ドキュメントに記載の説明を参考にしてください。

MediaRouter サポート ライブラリ

MediaRouter API は、AndroidX MediaRouter ライブラリで定義されています。このライブラリは、Android 2.3(API レベル 9)以降を搭載しているデバイスと互換性があり、すべてのデバイスで一貫したエクスペリエンスを提供します。mediarouter API の詳細については、API リファレンスの androidx.mediarouter.media パッケージをご覧ください。

MediaRouter API
メディアアプリは MediaRouter API を使用して、利用可能なリモートの再生デバイスを発見し、音声と動画をそのデバイスに転送できます。
MediaRouteProvider API
MediaRouteProvider API は、リモートの再生デバイスの機能を定義し、MediaRouter を使って代替メディアパスを検索するアプリに、その定義を公開します。

出力の切り替え

Android 11 以降、アプリのルーティング オプションもシステム メディア プレーヤーに表示されます。それによりユーザーは、スマートフォンで視聴していた動画をキッチンで見続けたり、自宅でも車内でもオーディオを聞いたりなど、視聴形態を変えながらデバイスをシームレスに切り替えることが可能になります。

メディア通知のルート選択ボタンを押すと、出力の切り替えが表示されます。デフォルトで次の選択ができます。

  • 現在のデバイスのスピーカー
  • 接続されているすべての Bluetooth オーディオ デバイス

アプリには、キャストなど、アプリの機能に応じてより多くのオプションを提供することもできます。

アプリは MediaRouter API を使用して、ルーティングの選択をカスタマイズできます。使用しないデバイスの除外(Netflix スマートテレビの視聴中に音声のみの Chromecast を除外するなど)や、アプリが認識するその他の特別なデバイスの追加などが可能です。