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

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

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 を除外するなど)や、アプリが認識するその他の特別なデバイスの追加などが可能です。