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

ユーザーはテレビ、ホームシアター システム、音楽プレーヤーをワイヤレス技術で接続するようになり、こうした画面や音量の大きいデバイスで Android アプリのコンテンツを再生できるようになることを望んでいます。このような再生を有効にすると、1 台のデバイスで 1 人のユーザーを使用するアプリを、 複数のユーザーに喜びとインスピレーションをもたらす共有エクスペリエンスへの統合を実現します。

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

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

注: アプリで Google Cast デバイスをサポートする場合は、Cast SDK を使用し、アプリをキャストの送信元としてビルドします。 Cast のドキュメント 直接使用するのではなく

MediaRouter サポート ライブラリ

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

MediaRouter API
メディアアプリは、MediaRouter API を使用して、利用可能なリモート再生デバイスを検出し、音声と動画をそれらのデバイスにルーティングします。
MediaRouteProvider API
MediaRouteProvider API は、リモートの再生デバイスの機能を定義し、MediaRouter を使って代替メディアパスを検索するアプリに、その定義を公開します。

出力スイッチャー

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

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

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

アプリには、たとえばキャストなど、機能に応じてさまざまなオプションが用意されています。

アプリは MediaRouter を使用できます。 カスタマイズする API ルーティングの選択肢が決まります。サポートされていないデバイス(フィルタリングなど)を除外できます (Netflix スマートテレビを視聴している場合は音声のみの Chromecast をキャスト)または アプリが認識できる他の特殊なデバイスです。