设备间路由

随着用户使用无线技术连接他们的电视、家庭影院系统和音乐播放器,他们希望能够在这些更大、更响亮的设备上播放来自 Android 应用的内容。启用这种类型的播放可以将您的单设备、单用户应用转变为共享体验,从而让多个用户感到高兴和灵感。

Android 媒体路由 API 旨在通过通用用户界面启用媒体在远程接收设备上的显示和播放。实现 MediaRouter 接口的应用开发者可以连接到框架,并将内容播放到参与媒体路由框架的设备上。媒体播放设备制造商可以通过发布 MediaRouteProvider 来参与框架,该框架允许其他应用程序连接到接收设备并在其上播放媒体。图 1 说明了应用如何通过媒体路由框架连接到接收设备。

图 1. 媒体路由提供程序类如何提供媒体应用与接收设备之间通信的概述。

注意:如果您希望您的应用支持 Google Cast 设备,则应使用 Cast SDK 并将您的应用构建为 Cast 发送方。请遵循 Cast 文档 中的说明,而不是直接使用 MediaRouter 框架。

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 开始,您应用的路由选项也会出现在系统媒体播放器中。这有助于在用户更改观看和收听环境(例如在厨房观看视频与在手机上观看视频,或在家中或汽车中收听音频)时,为他们提供无缝的体验。

默认情况下,按下媒体通知中的路由选择按钮会显示包含以下选项的输出切换器

  • 当前设备上的扬声器
  • 所有已连接的蓝牙音频设备

应用程序还可以根据其功能提供更多选项,例如 Cast。

应用可以使用 MediaRouter API 自定义路由选项。您可以排除不支持的设备(例如,如果您正在观看 Netflix 智能电视,则过滤掉仅音频的 Chromecast),或包含应用识别的其他特殊设备。