设备间路由

随着用户使用无线技术连接电视、家庭影院系统和音乐播放器,他们希望能够在这些更大、更响亮的设备上播放来自 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),或包含您的应用程序识别的其他特殊设备。