设备间路由

随着用户通过无线技术连接电视、家庭影院系统和音乐播放器,他们希望能够在这些更大、音量更大的设备上播放 Android 应用中的内容。启用这种播放功能可以将您的单设备、单用户应用转变为共享体验,让多位用户感到愉悦和启发。

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

图 1. 媒体路由提供程序类如何提供从媒体应用到接收设备的通信概览。

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

MediaRouter 支持库

媒体路由 API 定义在 AndroidX MediaRouter 库中。此库与运行 Android 2.3(API 级别 9)及更高版本的设备兼容,并确保在所有设备上提供一致的体验。有关媒体路由 API 的详细信息,请参阅 API 参考中的 androidx.mediarouter.media 软件包。

MediaRouter API
媒体应用使用 MediaRouter API 来发现可用的远程播放设备,并将音频和视频路由到这些设备。
MediaRouteProvider API
MediaRouteProvider API 定义了远程播放设备的功能,并使其对使用 MediaRouter 搜索替代媒体路径的应用可见。

输出切换器

从 Android 11 开始,您的应用的路由选项也会显示在系统媒体播放器中。当用户在不同设备之间切换时,这有助于他们在更改观看和收听环境(例如在厨房观看视频与在手机上观看,或在家中或车内收听音频)时获得无缝体验。

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

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

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

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