产品资讯

Media3 1.10 已发布

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

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

播放界面和 Compose

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

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

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

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

large_media31.102.jpeg
 Media3 Compose 演示版应用中的播放器可组合项

播放功能增强

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

  • 格式支持:ExoPlayer 现在支持提取 MP4 容器中的杜比视界 Profile 10 和多功能视频编码 (VVC) 轨道,并且我们在 decoder_mpeghextension 中引入了 MPEG-H 界面管理器支持。IAMF 扩展程序现在可通过 iamf_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-frame 模块,并将导入更新为 androidx.media3.inspector.frame.FrameExtractor。
  • 我们还将 LottieOverlay 效果移到了单独的 media3-effect-lottie 模块中。提醒一下,这为您提供了一种直接将基于矢量的 Lottie 动画应用于视频帧的简单方法。

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

继续阅读