Mediarouter
最近更新时间 | 稳定版 | 候选版 | 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") }
如需详细了解依赖项,请参阅添加 build 依赖项。
反馈
您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。
如需了解详情,请参阅问题跟踪器文档。
版本 1.7
版本 1.7.0
2024 年 3 月 20 日
发布了 androidx.mediarouter:mediarouter:1.7.0
和 androidx.mediarouter:mediarouter-testing:1.7.0
。版本 1.7.0 中包含这些提交内容。
API 变更
- 向
MediaRouteDescriptor
和RouteInfo
添加了isSystemRoute()
,如果相应路由是系统管理的路由,则返回 true,这意味着系统是路由提供程序,并且应用负责将媒体样本馈送给系统进行渲染 (I949e4)。蓝牙耳机、有线耳机和内置扬声器都属于系统路由。 - 废弃了
MediaRouter.removeRemoteControlClient
。您应调用setMediaSessionCompat(MediaSessionCompat)
而不是addRemoteControlClient(Object)
,这样就无需调用removeRemoteControlClient(Object)
。(I8fc5e)。 - 使
MediaRouteButton
扩展AppCompatImageView
。(Ib455e)。 - 添加了
DEVICE_TYPE_SMARTPHONE
,用于表示媒体路由是智能手机。(I39837)。 - 改进了设备类型从
MediaRouter2
到 AndroidXMediaRouter
的映射,以描述系统路由(例如:蓝牙、HDMI、有线)。(Iccffa)
bug 修复
- 为路线按钮添加了缺失的图标分辨率,这可能导致一些孤立的崩溃。(cddba9、b/261878418)。
- 修复了导致
isSystemRoute
针对通过android.media.MediaRouter#addUserRoute()
添加的用户路由返回 true 的 bug (a27f6b)。
新功能
- 将 minSdk 提升到 19。(e8c4463)
版本 1.7.0-rc01
2024 年 3 月 6 日
发布了 androidx.mediarouter:mediarouter:1.7.0-rc01
和 androidx.mediarouter:mediarouter-testing:1.7.0-rc01
。版本 1.7.0-rc01 中包含这些提交内容。
版本 1.7.0-beta01
2024 年 2 月 21 日
发布了 androidx.mediarouter:mediarouter:1.7.0-beta01
和 androidx.mediarouter:mediarouter-testing:1.7.0-beta01
。版本 1.7.0-beta01 中包含这些提交内容。
版本 1.7.0-alpha02
2024 年 2 月 7 日
发布了 androidx.mediarouter:mediarouter:1.7.0-alpha02
和 androidx.mediarouter:mediarouter-testing:1.7.0-alpha02
。版本 1.7.0-alpha02 中包含这些提交内容。
新功能
- 将 minSdk 提升到 19。(e8c4463)
API 变更
- 改进了设备类型从
MediaRouter2
到 AndroidXMediaRouter
的映射,以描述系统路由(例如:蓝牙、HDMI、有线)。(Iccffa)
bug 修复
- 修复了导致
isSystemRoute
针对通过android.media.MediaRouter#addUserRoute()
添加的用户路由返回 true 的 bug (a27f6b)。
版本 1.7.0-alpha01
2023 年 11 月 15 日
发布了 androidx.mediarouter:mediarouter:1.7.0-alpha01
和 androidx.mediarouter:mediarouter-testing:1.7.0-alpha01
。版本 1.7.0-alpha01 中包含这些提交内容。
API 变更
- 向
MediaRouteDescriptor
和RouteInfo
添加了isSystemRoute()
,如果相应路由是系统管理的路由,则返回 true,这意味着系统是路由提供程序,并且应用负责将媒体样本馈送给系统进行渲染 (I949e4)。蓝牙耳机、有线耳机和内置扬声器都属于系统路由。 - 废弃了
MediaRouter.removeRemoteControlClient
。您应调用setMediaSessionCompat(MediaSessionCompat)
而不是addRemoteControlClient(Object)
,这样就无需调用removeRemoteControlClient(Object)
。(I8fc5e)。 - 使
MediaRouteButton
扩展AppCompatImageView
。(Ib455e)。 - 添加了
DEVICE_TYPE_SMARTPHONE
,用于表示媒体路由是智能手机。(I39837)。
bug 修复
- 为路线按钮添加了缺失的图标分辨率,这可能导致一些孤立的崩溃。(cddba9、b/261878418)。
版本 1.6
版本 1.6.0
2023 年 9 月 20 日
发布了 androidx.mediarouter:mediarouter:1.6.0
和 androidx.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-rc01
和 androidx.mediarouter:mediarouter-testing:1.6.0-rc01
。版本 1.6.0-rc01 中包含这些提交内容。
新功能
- 添加了在屏幕关闭时自动关闭
MediaRouter
对话框的功能。(Ib25ee)。
bug 修复
- 将
MediaRouter
日志记录标记更改为了AxMediaRouter
,以消除与平台MediaRouter
的歧义。(Ib619f)。
版本 1.6.0-beta01
2023 年 8 月 9 日
发布了 androidx.mediarouter:mediarouter:1.6.0-beta01
和 androidx.mediarouter:mediarouter-testing:1.6.0-beta01
。版本 1.6.0-beta01 中包含这些提交内容。
API 变更
- 修复了对 Android U 平台 API 的支持。(Ie9117、b/289269026)
bug 修复
- 修复了
MediaRouteChooserDialog
的翻译问题。(d39a7f)
版本 1.6.0-alpha05
2023 年 6 月 21 日
发布了 androidx.mediarouter:mediarouter:1.6.0-alpha05
和 androidx.mediarouter:mediarouter-testing:1.6.0-alpha05
。版本 1.6.0-alpha05 中包含这些提交内容。
新功能
版本 1.6.0-alpha04
2023 年 6 月 7 日
发布了 androidx.mediarouter:mediarouter:1.6.0-alpha04
和 androidx.mediarouter:mediarouter-testing:1.6.0-alpha04
。此版本是在内部分支中开发的。
新功能
- 改进了
MediaRouteButton
,以提供更好的用户体验 (I9dbcb)。包括:- 提示用户检查搜索的设备是否连接到同一 Wi-Fi 网络。
- 添加结束状态和错误消息,以在相应预定义时间段结束时显示错误消息。
API 变更
- 从平台引入了新的
MediaRouteDescriptor
设备类型。(I75ba6)。
bug 修复
- 修复了非动态路由控制器上的音量调整 (I730ec)。
- 将
MediaRouteButton
设为始终启用 (I1e9ff)。 - 修复了一些 Android 版本运行时检查导致无法使用 AndroidX 媒体路由器库访问 Android U 功能的问题 (I97cab)。
版本 1.6.0-alpha03
2023 年 4 月 12 日
发布了 androidx.mediarouter:mediarouter:1.6.0-alpha03
和 androidx.mediarouter:mediarouter-testing:1.6.0-alpha03
。这是从内部分支发布的。
- 围绕
MediaRouteDescriptor
的可见性 API 进行一些更改。 - 废弃了
MediaRouteActionProvider.setAlwaysVisible
和MediaRouteButton.setAlwaysVisible
,使媒体路由按钮始终可见,无论网络连接状况或媒体路由是否可用都是如此。 - 修复了非动态路由控制器的音量调整问题。这解决了以下问题:尝试在输出切换器中调整某个路由的音量会导致音量恢复到原始值 (93f409)。
版本 1.6.0-alpha02
2023 年 3 月 8 日
发布了 androidx.mediarouter:mediarouter:1.6.0-alpha02
和 androidx.mediarouter:mediarouter-testing:1.6.0-alpha02
。在内部分支上开发。
新功能
- 向 AndroidX
MediaRouter
添加了路线列表偏好设置支持。 - 添加了对
MediaRouteDescriptor
的可见性支持。
bug 修复
- 改进了 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.0
和 androidx.mediarouter:mediarouter-testing:1.4.0
。版本 1.4.0 中包含这些提交内容。
自 1.3.1 以来的重要变更
- 添加了
SystemOutputSwitcherDialogController#showDialog
,以显示系统的输出切换器对话框,或在不支持系统输出切换器的 Wear 设备上显示蓝牙设置 Fragment。(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-rc01
和 androidx.mediarouter:mediarouter-testing:1.4.0-rc01
。版本 1.4.0-rc01 中包含这些提交内容。
- 移除了 MediaRouteProviderDescriptor 中的 null 列表。
版本 1.4.0-beta02
2023 年 2 月 22 日
发布了 androidx.mediarouter:mediarouter:1.4.0-beta02
。版本 1.4.0-beta02 中包含这些提交内容。
bug 修复
- 修复了回归问题,该问题会导致应用由于
MediaRouterProvider.notifyDynamicRoutesChanged
中的IllegalArgumentException
而发生崩溃 (7d17ea)。
版本 1.4.0-beta01
2023 年 1 月 25 日
发布了 androidx.mediarouter:mediarouter:1.4.0-beta01
。版本 1.4.0-beta01 中包含这些提交内容。
API 变更
现在,如果所传递的路由无一处于 SELECTED 或 SELECTING 状态,DynamicGroupRouteController.notifyDynamicRoutesChanged()
会抛出 IllegalArgumentException
。(8f6b3e)
bug 修复
- 修复了因与 API 兼容的提供程序服务实现返回 null 路由提供程序而导致的崩溃问题。(63f16d)
- 将受保护的广播接收器标记为未导出,使其适用于以 API 33 及更高级别为目标平台的应用。(784f8b)
- 修复了
OverlayListView
中一些虚假的可为 null 性注解。(472e3f) - 修复了下述 bug:
SystemOutputSwitcherDialogController.showDialog
中的EXTRA_CLOSE_ON_CONNECT
会导致蓝牙设置 fragment 在 Wear 设备上突然关闭。(28c9d8) - 已更改为输出切换器公共方法的 Javadoc。(f0ae94、44d2c9)
版本 1.4.0-alpha01
2022 年 11 月 9 日
发布了 androidx.mediarouter:mediarouter:1.4.0-alpha01
。版本 1.4.0-alpha01 中包含这些提交内容。
新功能
- 添加了
SystemOutputSwitcherDialogController#showDialog
,以显示系统的输出切换器对话框,或在不支持系统输出切换器的 Wear 设备上显示蓝牙设置 Fragment。(Ic3d78)
API 变更
- 添加了
MediaRouteDescriptor.Builder.clearControlFilters
(I3a4e1) - 在
MediaRouter
中添加了缺失的MainThread
注解。(I3ef6e)
bug 修复
- 修复了调用
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 中包含这些提交内容。
bug 修复
- 解决了一个特定于设备的问题,即
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
中添加了一个用于调整用户体验的路由器参数。 - 为公共方法添加了 null 注释。
- 针对 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
中添加了一个用于调整用户体验的路由器参数 (I7e574) - 为公共方法添加了 null 注解 (Ifc901)
bug 修复
- 针对 androidx 启用了对
MissingGetterMatchingBuilder
的 API lint 检查(I4bbea、b/138602561)
版本 1.2
版本 1.2.6
2022 年 1 月 26 日
发布了 androidx.mediarouter:mediarouter:1.2.6
。版本 1.2.6 中包含这些提交内容。
bug 修复
- 修复了
RemotePlaybackClient
构造函数在 Android 12 上会发生崩溃的问题 (b/210684559)
版本 1.2.5
2021 年 9 月 1 日
发布了 androidx.mediarouter:mediarouter:1.2.5
。版本 1.2.5 中包含这些提交内容。
bug 修复
- 在没有要传输的路由时,隐藏输出切换器中的媒体路由按钮。
- 修复了群组成员路由的音量控制问题。
版本 1.2.4
2021 年 6 月 16 日
发布了 androidx.mediarouter:mediarouter:1.2.4
。版本 1.2.4 中包含这些提交内容。
bug 修复
- 修复了 MediaRouteButton 重放连接动画的问题。
- 修复了
MediaRouteChooserDialog
中的路由垂直对齐问题。
版本 1.2.3
2021 年 5 月 5 日
发布了 androidx.mediarouter:mediarouter:1.2.3
。版本 1.2.3 中包含这些提交内容。
bug 修复
- 修复了自定义选择器对话框的 NullPointerException。
- 修复了以下问题:如果 MediaRouteButton 被暂时停用,即便是在连接的情况下,它也会显示已断开连接状态。
版本 1.2.2
2021 年 2 月 10 日
发布了 androidx.mediarouter:mediarouter:1.2.2
。版本 1.2.2 中包含这些提交内容。
bug 修复
- 切勿试图在调用
OnDynamicRouteChangedListener.onRouteChanged
时重新选择所选路由。
版本 1.2.1
2021 年 1 月 13 日
发布了 androidx.mediarouter:mediarouter:1.2.1
。版本 1.2.1 中包含这些提交内容。
bug 修复
- 修复了以下问题:在 BT 处于可用状态时,调用
unselect()
会选择手机扬声器 - 修复了 MediaRouter.Callback 计时问题。在
OnPrepareTransferListener#onPrepareTransfer
完成后,将会调用Callback#onRouteSelected
和Callback#onRouteUnselected
。
版本 1.2.0
2020 年 10 月 14 日
发布了 androidx.mediarouter:mediarouter:1.2.0
。版本 1.2.0 中包含这些提交内容。
自 1.1.0 以来的主要功能
- 支持无缝媒体传输,可通过系统界面实现媒体传输:如需了解详情,请观看 What's new in Media(媒体的新变化)视频
- 更改了有关注册回调的指南。请参阅
MediaRouter.addCallback()
的 Javadoc 中的示例代码 - 添加了新的监听器
MediaRouter#OnPrepareTransferListener
,以便在所选路由将要更改时接收事件 - 添加了
MediaRouterParams
,以指明路由功能和界面类型。 - 防止尝试将仅限内部使用的方法与
@RestrictTo(LIBRARY)
搭配使用
版本 1.2.0-rc02
2020 年 10 月 1 日
发布了 androidx.mediarouter:mediarouter:1.2.0-rc02
。版本 1.2.0-rc02 中包含这些提交内容。
bug 修复
- 修复了用户通过系统界面停止投射时不一定调用
RouteController#onUnselect
的问题。
版本 1.2.0-rc01
2020 年 9 月 16 日
发布了 androidx.mediarouter:mediarouter:1.2.0-rc01
。版本 1.2.0-rc01 中包含这些提交内容。
bug 修复
- 修复了连接到蓝牙音频设备时当前投射断开连接的问题。
- 修复了在
MediaRouteProvider#notifyDynamicRoutesChanged()
中抛出IllegalArgumentException
的问题。 - 确保输出切换器中的停止投射功能可正常使用
版本 1.2.0-beta01
2020 年 9 月 2 日
发布了 androidx.mediarouter:mediarouter:1.2.0-beta01
。版本 1.2.0-beta01 中包含这些提交内容。
新功能
- 支持无缝媒体传输,可通过系统界面实现媒体传输:如需了解详情,请观看 What's new in Media(媒体的新变化)视频
API 变更
- 支持
MediaRouter.OnPrepareTransferListener
使用 ListenableFuture
bug 修复
- 修复了群组路由的音量控制问题。
- 创建群组路由时,请先创建一个群组路由,稍后再创建成员路由。
- 确保输出切换器中的“停止”选项正常工作。
- 修复了未按预期调用的回调函数
RouteController#onSelect
(创建路由会话时)。MediaRouter.Callback#onRouteSelected
(从 Cast 传输到手机时)。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)
搭配使用
bug 修复
- 解决了投射对话框的 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 语言
bug 修复
- 修复了 MediaRoute 对话框底部的内边距
版本 1.1.0-beta01
2019 年 5 月 7 日
发布了 androidx.mediarouter:mediarouter:1.1.0-alpha01
。点击此处可查看此版本中包含的提交内容。
新功能
- 对于标记为
@NonNull
的 null 参数,已将IllegalPointerException
更改为NullPointerException
。
API 变更
- 更改了
DynamicRouteDescriptor
的回调逻辑。现在MediaRouteProvider
会调用MediaRouterProvider.DynamicGroupController.notifyDynamicRoutesChanged
,而不是直接调用回调方法。
版本 1.1.0-alpha03
2019 年 4 月 3 日
发布了 androidx.mediarouter:mediarouter:1.1.0-alpha03
。点击此处可查看此版本中包含的提交内容。
bug 修复
- 修复了 MediaRouteVolumeSlider 和 RegisteredMediaRouteProvider 出现崩溃的问题。
版本 1.1.0-alpha02
2019 年 3 月 13 日
发布了 androidx.mediarouter:mediarouter:1.1.0-alpha02
。点击此处可查看此版本中包含的完整提交内容列表。
新功能
- 在 Android Studio 布局预览中支持 MediaRouteButton
API 变更
- 在
MediaRouteActionProvider
和MediaRouteButton
中添加了enableDynamicGroup()
方法,以启用动态群组功能 - 在
MediaRouteActionProvider
和MediaRouteButton
中添加了setAlwaysVisible(boolean)
方法,以使MediaRouteButton
始终可见
bug 修复
- 使
MediaRouteCastDialog
行易于点击 - 移除了不必要的
onRouteChanged
回调调用
版本 1.1.0-alpha01
2018 年 12 月 3 日
新功能
- 新增了对动态群组路由的支持
- 新增了 API,以通过
MediaRouteProviders
支持动态群组路由 - 为动态群组路由的路由选择器和控制器对话框添加了新的用户体验
- 新增了 API,以通过