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

ユーザーは、テレビ、ホームシアター システム、音楽プレーヤーをワイヤレス技術で接続する際に、Android アプリのコンテンツをこれらの大型で音量の大きいデバイスで再生できるようにしたいと考えています。この種の再生を可能にすることで、1 台のデバイスと 1 人のユーザーが、複数のユーザーを楽しませ、インスピレーションを与える共有体験へと変えることができます。

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

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

注: アプリで Google Cast デバイスをサポートする場合は、Cast SDK を使用し、アプリをキャスト センダーとしてビルドする必要があります。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 を除外するなど)、アプリが認識する他の特別なデバイスを含めたりできます。