媒体路由器

使用通用用户界面在远程接收设备上启用媒体显示和播放。
最新更新 稳定版 候选版本 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)[https://android-review.googlesource.com/#/q/I9dbcb8d9e5ee4902d48f1bfb4133e04781c6ae35)). 包括
    • 提示用户检查搜索到的设备是否在同一 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 媒体路由库访问 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.clearControlFilters (I3a4e1)
  • 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() 现在在没有传递的路由被选中或正在选择时抛出 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.clearControlFilters (I3a4e1)
  • 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 已发布。此版本中包含的提交可以在 此处找到。

新功能

  • IllegalPointerException 更改为 NullPointerException,用于标记为 @NonNull 的空参数。

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 支持动态组路由
    • 为动态组路由的路由选择器和控制器对话框添加了新的 UX