产品动态

Media3 1.10 已发布

2 分钟阅读时间
Andrew Lewis
软件工程师

Media3 1.10 包含新功能、问题修复和功能改进,包括基于 Material3 的播放微件、ExoPlayer 中扩展的格式支持,以及使用 Transformer 导出媒体时改进的速度调整功能。请继续阅读以了解详情,并查看完整版本说明以获取更改的完整列表。

播放界面和 Compose

我们将继续扩展 media3-ui-compose-material3 模块,以帮助您构建用于播放的 Compose 界面。

我们添加了一个新的 Player Composable,它将 ContentFrame 与可自定义的播放控件相结合,为您提供了一个开箱即用的播放器微件,并具有现代化的界面。

此版本还添加了一个 ProgressSlider Composable,用于显示播放器进度并使用拖动和点按手势执行搜索。对于播放速度管理,基本 media3-ui-compose 模块中提供了一个新的 PlaybackSpeedControl,Material 3 模块中提供了一个样式化的 PlaybackSpeedToggleButton。

在即将发布的 Media3 版本中,我们将继续添加新功能,例如轨道选择实用程序、字幕支持和更多自定义选项。我们非常期待您的反馈,因此请在项目问题跟踪器中分享您的想法。

large_media31.102.jpeg
 Media3 Compose 演示版应用中的 Player Composable

播放功能增强

Media3 1.10 在播放模块中添加了各种功能并进行了改进:

  • 格式支持:ExoPlayer 现在支持在 MP4 容器中提取 Dolby Vision Profile 10 和 Versatile Video Coding (VVC) 轨道,并且我们在 decoder_mpeghextension 中引入了 MPEG-H 界面管理器支持。IAMF 扩展现在可以通过 decoder viaiamf_tools 或通过 Android OS Spatializer 无缝支持双耳输出,并使用新逻辑来匹配扬声器的输出布局。
  • 广告播放:提高了可靠性,改进了对 X-PLAYOUT-LIMIT 和 X-SNAP 的 HLS 插页式广告支持,并且借助最新的 IMA SDK 依赖项,您可以使用 setEnableCustomTabs 控制广告点击后打开的网址是否在自定义标签页中打开。

HLS:ExoPlayer 现在允许在遇到加载错误时进行位置回退(如果提供了来自不同位置的冗余流)。

  • 会话:MediaSessionService 现在扩展了 LifecycleService,允许应用访问服务的生命周期范围。

我们今年的一个主要关注点是播放效率和性能。Media3 1.10 包含对以更高效的方式安排核心播放循环的实验性支持。您可以通过 ExoPlayer.Builder 启用 experimentalSetDynamicSchedulingEnabled() 来试用此功能。我们计划在未来的版本中进行进一步改进,敬请期待!

媒体编辑和 Transformer

对于构建媒体编辑体验的开发者,我们使速度调整功能更加强大。EditedMediaItem.Builder.setFrameRate() 现在可以为视频设置最大输出帧速率。当使用 setSpeed() 提高媒体速度时,这对于控制输出大小和保持性能特别有用。

用于提取帧和应用 Lottie 效果的新模块

在此版本中,我们将一些功能拆分为新模块,以缩小某些依赖项的范围:

 

  • FrameExtractor 已从主 media3-inspector 模块中移除,因此请迁移您的代码以使用新的 media3-inspector-framemodule,并将导入更新为 androidx.media3.inspector.frame.FrameExtractor。
  • 我们还将 LottieOverlay 效果移到了单独的 media3-effect-lottie 模块中。请注意,这为您提供了一种直接将基于矢量的 Lottie 动画应用于视频帧的简单方法。

如果您遇到任何 bug,或者有任何疑问或功能请求,请通过问题跟踪器与我们联系。我们期待您的来信!

继续阅读