在设备之间传输

当用户使用无线技术连接电视、家庭影院系统和音乐播放器时,他们是希望能够在这些拥有更大屏幕、更高音量的设备上播放来自 Android 应用的内容。实现这种形式的播放,可以将单个设备上的单用户应用转变成一种可以多个用户共享的美好体验。

Android MediaRouter API 旨在利用通用界面在远程接收端设备上实现媒体内容的显示和播放。然后,实现 MediaRouter 接口的应用开发者可以连接到框架并将内容播放到加入 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 开始,应用的路由选项也会显示在系统媒体播放器中。当用户改变视听环境时(例如在厨房中观看视频与在手机上观看之间切换,或者在家中收听音频与在车中收听之间切换),这有助于为用户提供无缝切换设备的流畅体验。

默认情况下,按媒体通知中的路由选择按钮后,系统会打开输出切换器,其中包含以下选项:

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

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

应用可以使用 MediaRouter API 自定义路由选择。您可以排除不支持的设备(例如,如果您在观看 Netflix 智能电视,就可以滤除纯音频的 Chromecast),也可以添加应用可识别的其他特殊设备。