媒体路由

使用通用用户界面在远程接收设备上启用媒体显示和播放。
最新更新 稳定版 候选发布版 Beta 版 Alpha 版
2024 年 3 月 20 日 1.7.0 - - -

声明依赖项

要添加对 MediaRouter 的依赖项,您必须将 Google Maven 存储库添加到您的项目中。阅读Google 的 Maven 存储库以获取更多信息。

在应用或模块的 build.gradle 文件中添加所需工件的依赖项

Groovy

dependencies {
    implementation "androidx.mediarouter:mediarouter:1.7.0"
}

Kotlin

dependencies {
    implementation("androidx.mediarouter:mediarouter:1.7.0")
}

有关依赖项的更多信息,请参阅添加构建依赖项

反馈

您的反馈有助于改进 Jetpack。如果您发现新问题或有改进此库的想法,请告诉我们。在创建新问题之前,请查看此库中现有的问题。您可以通过点击星形按钮为现有问题添加您的投票。

创建新问题

有关更多信息,请参阅问题跟踪器文档

版本 1.7

版本 1.7.0

2024 年 3 月 20 日

androidx.mediarouter:mediarouter:1.7.0androidx.mediarouter:mediarouter-testing:1.7.0 已发布。版本 1.7.0 包含这些提交

API 更改

  • isSystemRoute() 添加到 MediaRouteDescriptorRouteInfo,如果相应的路由是系统管理的路由,则返回 true,这意味着系统是路由提供程序,并且应用负责将媒体样本馈送到系统以进行渲染 (I949e4)。蓝牙耳机、有线耳机和内置扬声器是系统路由的示例。
  • 弃用 MediaRouter.removeRemoteControlClient。您应该调用 setMediaSessionCompat(MediaSessionCompat) 而不是 addRemoteControlClient(Object),这样就不需要调用 removeRemoteControlClient(Object) 了。(I8fc5e)。
  • 使 MediaRouteButton 扩展 AppCompatImageView。(Ib455e)。
  • 添加 DEVICE_TYPE_SMARTPHONE,指示媒体路由是智能手机。(I39837)。
  • 改进从 MediaRouter2 到 AndroidX MediaRouter 的设备类型映射,以描述系统路由(例如:蓝牙、HDMI、有线)。(Iccffa)

错误修复

  • 为路由按钮添加缺失的图标分辨率,这可能是导致一些孤立崩溃的原因。(cddba9b/261878418)。
  • 修复导致isSystemRoute对通过android.media.MediaRouter#addUserRoute()添加的用户路由返回true的错误(a27f6b)。

新增功能

  • 将minSdk提升至19。(e8c4463)

版本 1.7.0-rc01

2024年3月6日

androidx.mediarouter:mediarouter:1.7.0-rc01androidx.mediarouter:mediarouter-testing:1.7.0-rc01 已发布。版本 1.7.0-rc01 包含 这些提交

版本 1.7.0-beta01

2024年2月21日

androidx.mediarouter:mediarouter:1.7.0-beta01androidx.mediarouter:mediarouter-testing:1.7.0-beta01 已发布。版本 1.7.0-beta01 包含这些提交。

版本 1.7.0-alpha02

2024年2月7日

androidx.mediarouter:mediarouter:1.7.0-alpha02androidx.mediarouter:mediarouter-testing:1.7.0-alpha02 已发布。版本 1.7.0-alpha02 包含这些提交。

新增功能

  • 将minSdk提升至19。(e8c4463)

API 更改

  • 改进从 MediaRouter2 到 AndroidX MediaRouter 的设备类型映射,以描述系统路由(例如:蓝牙、HDMI、有线)。(Iccffa)

错误修复

  • 修复导致isSystemRoute对通过android.media.MediaRouter#addUserRoute()添加的用户路由返回true的错误(a27f6b)。

版本 1.7.0-alpha01

2023年11月15日

androidx.mediarouter:mediarouter:1.7.0-alpha01androidx.mediarouter:mediarouter-testing:1.7.0-alpha01 已发布。版本 1.7.0-alpha01 包含这些提交。

API 更改

  • isSystemRoute() 添加到 MediaRouteDescriptorRouteInfo,如果相应的路由是系统管理的路由,则返回 true,这意味着系统是路由提供程序,并且应用负责将媒体样本馈送到系统以进行渲染 (I949e4)。蓝牙耳机、有线耳机和内置扬声器是系统路由的示例。
  • 弃用 MediaRouter.removeRemoteControlClient。您应该调用 setMediaSessionCompat(MediaSessionCompat) 而不是 addRemoteControlClient(Object),这样就不需要调用 removeRemoteControlClient(Object) 了。(I8fc5e)。
  • 使 MediaRouteButton 扩展 AppCompatImageView。(Ib455e)。
  • 添加 DEVICE_TYPE_SMARTPHONE,指示媒体路由是智能手机。(I39837)。

错误修复

  • 为路由按钮添加缺失的图标分辨率,这可能是导致一些孤立崩溃的原因。(cddba9b/261878418)。

版本 1.6

版本 1.6.0

2023年9月20日

androidx.mediarouter:mediarouter:1.6.0androidx.mediarouter:mediarouter-testing:1.6.0 已发布。版本 1.6.0 包含这些提交。

自 1.4.0 以来主要功能

  • 输出切换器的路由列表偏好设置
  • 为 AndroidX MediaRouter 添加路由列表偏好设置支持。
  • 为 MediaRouteDescriptor 添加可见性支持。
  • 重新设计 MediaRouteButton 以提供更好的用户体验((I9dbcb))。包括
    • 提示用户检查搜索到的设备是否在同一 Wi-Fi 网络上。
    • 添加一个最终状态,并在预定义的时间段结束后显示错误消息。
  • 在屏幕关闭时自动关闭 MediaRouter 对话框。

版本 1.6.0-rc01

2023年8月23日

androidx.mediarouter:mediarouter:1.6.0-rc01androidx.mediarouter:mediarouter-testing:1.6.0-rc01 已发布。版本 1.6.0-rc01 包含这些提交。

新增功能

  • 在屏幕关闭时自动关闭 MediaRouter 对话框。(Ib25ee)。

错误修复

  • MediaRouter 的日志标记更改为 AxMediaRouter,以与平台 MediaRouter 区分开。(Ib619f)。

版本 1.6.0-beta01

2023年8月9日

androidx.mediarouter:mediarouter:1.6.0-beta01androidx.mediarouter:mediarouter-testing:1.6.0-beta01 已发布。版本 1.6.0-beta01 包含这些提交。

API 更改

错误修复

  • 修复 MediaRouteChooserDialog 中的翻译。(d39a7f)

版本 1.6.0-alpha05

2023年6月21日

androidx.mediarouter:mediarouter:1.6.0-alpha05androidx.mediarouter:mediarouter-testing:1.6.0-alpha05 已发布。版本 1.6.0-alpha05 包含这些提交。

新增功能

  • 改进 MediaRouteChooserDialog 的 UI,通过提供书面指南来处理未发现设备的情况(I0cad9I3d445)。

版本 1.6.0-alpha04

2023年6月7日

androidx.mediarouter:mediarouter:1.6.0-alpha04androidx.mediarouter:mediarouter-testing:1.6.0-alpha04 已发布。此版本是在内部分支中开发的。

新增功能

  • 重新设计 MediaRouteButton 以提供更好的用户体验(I9dbcb)。包括
    • 提示用户检查搜索到的设备是否在同一 Wi-Fi 网络上。
    • 添加一个最终状态,并在预定义的时间段结束后显示错误消息。

API 更改

  • 引入平台的新 MediaRouteDescriptor 设备类型。(I75ba6)。

错误修复

  • 修复非动态路由控制器上的音量调节问题(I730ec)。
  • 使 MediaRouteButton 始终启用(I1e9ff)。
  • 修复一些 Android 版本运行时检查,这些检查阻止使用 AndroidX media router 库访问 Android U 功能(I97cab)。

版本 1.6.0-alpha03

2023年4月12日

androidx.mediarouter:mediarouter:1.6.0-alpha03androidx.mediarouter:mediarouter-testing:1.6.0-alpha03 已发布。这是从内部分支发布的。

  • MediaRouteDescriptor 的可见性 API 进行了一些更改。
  • 弃用 MediaRouteActionProvider.setAlwaysVisibleMediaRouteButton.setAlwaysVisible,使媒体路由按钮始终可见,无论网络连接情况或媒体路由可用性如何。
  • 修复非动态路由控制器的音量调节问题。这解决了在输出切换器中尝试调整路由音量会导致音量恢复到其原始值的问题(93f409)。

版本 1.6.0-alpha02

2023年3月8日

androidx.mediarouter:mediarouter:1.6.0-alpha02androidx.mediarouter:mediarouter-testing:1.6.0-alpha02 已发布。在内部分支上开发。

新增功能

  • 为 AndroidX MediaRouter 添加路由列表偏好设置支持。
  • MediaRouteDescriptor 添加可见性支持。

错误修复

  • 改进 Android U+ 上的 SystemUI 输出切换器调用。

版本 1.6.0-alpha01

2023年2月10日

androidx.mediarouter:mediarouter:1.6.0-alpha01 已发布。版本 1.6.0-alpha01 包含这些提交。

新增功能

  • 输出切换器的路由列表偏好设置

API 更改

  • 应用配置输出切换器的机制。

版本 1.4

版本 1.4.0

2023年5月3日

androidx.mediarouter:mediarouter:1.4.0androidx.mediarouter:mediarouter-testing:1.4.0 已发布。版本 1.4.0 包含这些提交。

自 1.3.1 以来重要更改

  • 添加 SystemOutputSwitcherDialogController#showDialog 以显示系统的输出切换器对话框,或在不可用系统输出切换器的 Wear 设备上显示蓝牙设置片段。(Ic3d78)
  • 修复导致应用程序因 MediaRouterProvider.notifyDynamicRoutesChanged 中的 IllegalArgumentException 而崩溃的回归问题(7d17ea)。
  • 添加 MediaRouteDescriptor.Builder.clearControlFiltersI3a4e1)
  • MediaRouter 中添加缺失的 MainThread 注释。(I3ef6e)
  • 在 API 33+ 上添加广播接收器导出标志(b2a663)。

版本 1.4.0-rc01

2023年4月5日

androidx.mediarouter:mediarouter:1.4.0-rc01androidx.mediarouter:mediarouter-testing:1.4.0-rc01 已发布。版本 1.4.0-rc01 包含这些提交。

  • 删除 MediaRouteProviderDescriptor 中的空列表。

版本 1.4.0-beta02

2023年2月22日

androidx.mediarouter:mediarouter:1.4.0-beta02 已发布。版本 1.4.0-beta02 包含这些提交。

错误修复

  • 修复导致应用程序因 MediaRouterProvider.notifyDynamicRoutesChanged 中的 IllegalArgumentException 而崩溃的回归问题(7d17ea)。

版本 1.4.0-beta01

2023年1月25日

androidx.mediarouter:mediarouter:1.4.0-beta01 已发布。版本 1.4.0-beta01 包含这些提交。

API 更改

DynamicGroupRouteController.notifyDynamicRoutesChanged() 现在在没有传递的路由为 SELECTED 或 SELECTING 时抛出 IllegalArgumentException。(8f6b3e)

错误修复

  • 修复由符合 api 的提供程序服务实现返回空路由提供程序导致的崩溃。(63f16d)
  • 通过将受保护的广播接收器标记为非导出,使它们在面向 API 33+ 的应用上工作。(784f8b)
  • 修复 OverlayListView 中一些多余的可空性注释。(472e3f)
  • 修复 SystemOutputSwitcherDialogController.showDialog 中的 EXTRA_CLOSE_ON_CONNECT 会导致 Wear 设备上的蓝牙设置片段突然关闭的错误。(28c9d8)
  • 更改输出切换器公共方法的 Javadoc。(f0ae9444d2c9)

版本 1.4.0-alpha01

2022年11月9日

androidx.mediarouter:mediarouter:1.4.0-alpha01 已发布。版本 1.4.0-alpha01 包含这些提交。

新增功能

  • 添加 SystemOutputSwitcherDialogController#showDialog 以显示系统的输出切换器对话框,或在不可用系统输出切换器的 Wear 设备上显示蓝牙设置片段。(Ic3d78)

API 更改

  • 添加 MediaRouteDescriptor.Builder.clearControlFiltersI3a4e1)
  • MediaRouter 中添加缺失的 MainThread 注释。(I3ef6e)

错误修复

  • 修复由调用 MediaRouter.removeUserRoute 引起的特定于设备的崩溃(b/202931542)。

  • 修复组描述符无法持续接收音量处理更新 (461303)。
  • 在 API 33+ 上添加广播接收器导出标志(b2a663)。
  • 修复因从平台接收无效路由描述符导致的崩溃 (dd5c09)。

版本 1.3

版本 1.3.1

2022年7月27日

androidx.mediarouter:mediarouter:1.3.1 已发布。 版本 1.3.1 包含以下提交。

错误修复

  • 解决设备特定问题,其中 MediaRouter.removeUserRoute() 会抛出意外的 IllegalArgumentException (b/202931542)。

版本 1.3.0

2022年4月20日

androidx.mediarouter:mediarouter:1.3.0 已发布。 版本 1.3.0 包含以下提交。

自 1.2.0 版本以来的重要更改

  • MediaRouterParams 中添加一个标志,可用于在运行时禁用无缝传输。
  • 添加了一个测试工件,可以重置 MediaRouter
  • MediaRouterControllerDialog 中添加路由参数以进行 UX 微调。
  • 为公共方法添加了空值注释。
  • 为 androidx 启用了 MissingGetterMatchingBuilder 的 API lint 检查。
  • 将 mediarouter 对 core 的依赖项更新到 1.6.0。

版本 1.3.0-rc01

2022年3月23日

androidx.mediarouter:mediarouter:1.3.0-rc01 已发布。 版本 1.3.0-rc01 包含以下提交。

  • 自上次 Beta 版本发布以来,没有更改。

版本 1.3.0-beta01

2022年3月9日

androidx.mediarouter:mediarouter:1.3.0-beta01 已发布。 版本 1.3.0-beta01 包含以下提交。

  • 自上次 Alpha 版本发布以来,没有更改。

版本 1.3.0-alpha01

2021年12月15日

androidx.mediarouter:mediarouter:1.3.0-alpha01 已发布。 版本 1.3.0-alpha01 包含以下提交。

API 更改

  • MediaRouterParams 中添加一个标志,可用于在运行时禁用无缝传输 (I53d68)
  • 添加了一个测试工件,可以重置 MediaRouter。 (Id167c)
  • MediaRouterControllerDialog 中添加路由参数以进行 UX 微调 (I7e574)
  • 为公共方法添加了空值注释 (Ifc901)

错误修复

  • 为 androidx 启用了 MissingGetterMatchingBuilder 的 API lint 检查 (I4bbeab/138602561)

版本 1.2

版本 1.2.6

2022年1月26日

androidx.mediarouter:mediarouter:1.2.6 已发布。 版本 1.2.6 包含以下提交。

错误修复

  • 修复 Android 12 上 RemotePlaybackClient 构造函数崩溃问题 b/210684559

版本 1.2.5

2021年9月1日

androidx.mediarouter:mediarouter:1.2.5 已发布。 版本 1.2.5 包含以下提交。

错误修复

  • 当没有可传输的路由时,隐藏输出切换器中的媒体路由按钮。
  • 修复控制组成员路由音量的问题。

版本 1.2.4

2021年6月16日

androidx.mediarouter:mediarouter:1.2.4 已发布。 版本 1.2.4 包含以下提交。

错误修复

  • 修复了 MediaRouteButton 重播连接动画的问题。
  • 修复了 MediaRouteChooserDialog 中路由的垂直对齐方式。

版本 1.2.3

2021年5月5日

androidx.mediarouter:mediarouter:1.2.3 已发布。 版本 1.2.3 包含以下提交。

错误修复

  • 修复了自定义选择器对话框的 NullPointerException。
  • 修复了即使连接时 MediaRouteButton 也显示断开连接状态的问题,如果它被暂时禁用。

版本 1.2.2

2021年2月10日

androidx.mediarouter:mediarouter:1.2.2 已发布。 版本 1.2.2 包含以下提交。

错误修复

  • 当调用 OnDynamicRouteChangedListener.onRouteChanged 时,不要尝试重新选择选定的路由。

版本 1.2.1

2021年1月13日

androidx.mediarouter:mediarouter:1.2.1 已发布。 版本 1.2.1 包含以下提交。

错误修复

  • 修复在蓝牙可用时调用 unselect() 时选择手机扬声器的问题
  • 修复 MediaRouter.Callback 定时问题。 Callback#onRouteSelectedCallback#onRouteUnselected 将在 OnPrepareTransferListener#onPrepareTransfer 完成后调用。

版本 1.2.0

2020年10月14日

androidx.mediarouter:mediarouter:1.2.0 已发布。 版本 1.2.0 包含以下提交。

自 1.1.0 版本以来的主要功能

  • 支持无缝媒体传输,可以通过系统 UI 进行媒体传输:有关更多详细信息,请参阅 媒体视频中的新增功能
  • 更改了注册回调的指南。请参阅 MediaRouter.addCallback() 的 Javadoc 中的示例代码
  • 添加了一个新的侦听器 MediaRouter#OnPrepareTransferListener,用于在即将更改选定路由时接收事件
  • 添加 MediaRouterParams 以表示路由功能和 UI 类型。
  • 使用 @RestrictTo(LIBRARY) 防止对仅供内部使用的 Tentative 方法的使用。

版本 1.2.0-rc02

2020年10月1日

androidx.mediarouter:mediarouter:1.2.0-rc02 已发布。 版本 1.2.0-rc02 包含以下提交。

错误修复

  • 修复了当用户通过系统 UI 停止投射时,RouteController#onUnselect 可能不会被调用的问题。

版本 1.2.0-rc01

2020年9月16日

androidx.mediarouter:mediarouter:1.2.0-rc01 已发布。 版本 1.2.0-rc01 包含以下提交。

错误修复

  • 修复了连接蓝牙音频设备时当前投射断开连接的问题。
  • 修复了在 MediaRouteProvider#notifyDynamicRoutesChanged() 中抛出 IllegalArgumentException 的问题。
  • 使从输出切换器停止投射正常工作

版本 1.2.0-beta01

2020年9月2日

androidx.mediarouter:mediarouter:1.2.0-beta01 已发布。 版本 1.2.0-beta01 包含以下提交。

新增功能

API 更改

  • 使 MediaRouter.OnPrepareTransferListener 使用 ListenableFuture

错误修复

  • 修复组路由的音量控制。
  • 创建组路由时,先创建组路由,然后创建成员路由。
  • 使输出切换器中的“停止”按钮正常工作。
  • 修复未按预期调用的回调
    • RouteController#onSelect(创建路由会话时)。
    • MediaRouter.Callback#onRouteSelected(从投射传输到手机时)。
    • MediaRouter.Callback#onRouteSelected(使用正确的组路由信息)。
  • 使回调被移除

版本 1.2.0-alpha02

2020年7月22日

androidx.mediarouter:mediarouter:1.2.0-alpha02 已发布。 版本 1.2.0-alpha02 包含以下提交。

API 更改

  • 添加了一个新的 MediaRouter.Callback#onRouteSelected,用于在选定的路由与请求的路由不同时收到通知 (Ieee16)
  • 添加了一个新的侦听器 MediaRouter#OnPrepareTransferListener,用于在即将更改选定路由时接收事件 (I6ace1)
  • 添加 MediaRouterParam (I33150)
  • 更改了注册回调的指南。请参阅 MediaRouter.addCallback() 的 Javadoc 中的示例代码 (I58112)

版本 1.2.0-alpha01

2020年4月15日

androidx.mediarouter:mediarouter:1.2.0-alpha01 已发布。 版本 1.2.0-alpha01 包含以下提交。

API 更改

  • 使用 @RestrictTo(LIBRARY) 防止对仅供内部使用的 Tentative 方法的使用。

错误修复

  • 解决了投射对话框上的 Talkback 问题
  • 使用锁保护 DynamicGroupRouterController 的侦听器

版本 1.1

版本 1.1.0

2019年9月5日

androidx.mediarouter:mediarouter:1.1.0 已发布。此版本中包含的提交可以在这里找到 此处

导入自 1.0.0 版本以来的更改

  • 动态组支持
    • 允许用户动态添加或删除路由设备。

    • 要启用动态组,请调用 MediaRouteButton.enableDynamicGroup();应用会显示一个新的动态组对话框。
    • 已安装的 MediaRouteProvider 也应支持动态组,才能真正启用此功能。

版本 1.1.0-rc01

2019年6月13日

androidx.mediarouter:mediarouter:1.1.0-rc01 发布,与 1.1.0-beta02 没有变化。此版本包含的提交可以在 此处 找到。

版本 1.1.0-beta02

2019年6月5日

androidx.mediarouter:mediarouter:1.1.0-beta02 发布。此版本包含的提交可以在 此处 找到。

新功能

  • 在 MediaRouter 对话框中支持 RTL 语言

错误修复

  • 修复 MediaRoute 对话框底部填充

版本 1.1.0-beta01

2019年5月7日

androidx.mediarouter:mediarouter:1.1.0-alpha01 发布。此版本包含的提交可以在 此处 找到。

新功能

  • 将标记为 @NonNull 的空参数的 IllegalPointerException 更改为 NullPointerException

API 更改

  • DynamicRouteDescriptor 的回调逻辑已更改。现在,MediaRouteProvider 将调用 MediaRouterProvider.DynamicGroupController.notifyDynamicRoutesChanged,而不是直接调用回调方法。

版本 1.1.0-alpha03

2019年4月3日

androidx.mediarouter:mediarouter:1.1.0-alpha03 发布。此版本包含的提交可以在 此处 找到。

错误修复

  • 修复了 MediaRouteVolumeSlider 和 RegisteredMediaRouteProvider 上的崩溃。

版本 1.1.0-alpha02

2019年3月13日

androidx.mediarouter:mediarouter:1.1.0-alpha02 发布。此版本包含的完整提交列表可以在 此处 找到。

新功能

  • 在 Android Studio 布局预览中支持 MediaRouteButton

API 更改

  • MediaRouteActionProviderMediaRouteButton 中添加了 enableDynamicGroup() 方法以启用动态组功能。
  • MediaRouteActionProviderMediaRouteButton 中添加了 setAlwaysVisible(boolean) 方法,以允许 MediaRouteButton 始终可见。

错误修复

  • 使 MediaRouteCastDialog 行易于点击。
  • 删除了不必要的 onRouteChanged 回调调用。

版本 1.1.0-alpha01

2018年12月3日

新功能

  • 添加了对动态组路由的支持。
    • 添加了 API 以通过 MediaRouteProviders 支持动态组路由。
    • 为动态组路由添加了路由选择器和控制器对话框的新用户体验。