首页
/ AndroidX Media 1.8.0-alpha01 版本技术解析

AndroidX Media 1.8.0-alpha01 版本技术解析

2025-06-20 07:42:02作者:翟萌耘Ralph

AndroidX Media 是一个由 Google 维护的多媒体框架库,它为 Android 开发者提供了强大的音视频播放、转码、下载等功能。最新发布的 1.8.0-alpha01 版本带来了多项重要改进和新特性,本文将对这些技术更新进行详细解析。

核心播放器(ExoPlayer)增强

本次更新中,ExoPlayer 引入了"scrubbing mode"(擦洗模式)这一重要功能。当用户频繁拖动进度条时,播放器可以进入这种特殊模式进行优化。开发者可以通过setScrubbingModeEnabled()方法启用此功能,并通过setScrubbingModeParameters()进行自定义配置。

在音频处理方面,新版本改进了DefaultAudioMixer,支持恒定功率的上混/下混处理,并公开了多个音频处理器类,包括ChannelMappingAudioProcessorTrimmingAudioProcessorToFloatPcmAudioProcessor,为开发者提供了更多音频处理能力。

视频解码方面新增了实验性API,通过设置MediaCodec.BUFFER_FLAG_DECODE_ONLY标志来跳过仅解码缓冲区,从而加快搜索速度。同时改进了对软件视频编解码器的性能检查机制。

媒体转码(Transformer)改进

Transformer模块进行了多项架构调整和功能增强。其中最重要的是将Muxer接口从media3-transformer迁移到了media3-muxer模块,实现了更好的模块化设计。

对于图像处理,现在要求必须通过MediaItem.Builder().setImageDuration(long)显式设置图像持续时间才能导入媒体项作为图像。新增的实验性功能experimentalSetMp4EditListTrimEnabled()可以在修剪时包含MP4编辑列表,指示播放器忽略修剪开始点之前的样本。

字幕处理优化

字幕支持方面有多项改进:修复了SSA和SubRip字幕在启用字幕时显示进行中提示的问题;解决了从包含字幕错误的流切换到实时流时播放卡住的问题;修正了H.262流中包含B帧时CEA-608字幕显示乱码的问题。

特别值得注意的是新增了对Matroska文件中CodecId = S_TEXT/SSA格式的SSA字幕支持,以及对SSA字幕文件中layer属性的支持,该属性用于定义多个字幕同时显示时的z轴顺序。

下载功能增强

下载模块现在支持渐进式流的部分下载。开发者可以使用DownloadHelper准备渐进式流,并通过指定时间范围来请求下载内容。类似地,自适应流也新增了部分下载支持。

架构方面引入了DownloadHelper.FactorySegmentDownloader的工厂模式,取代了原有的静态方法,提供了更灵活的扩展方式。

其他重要改进

音频同步方面修复了蓝牙设备恢复播放后前10秒音视频不同步的问题;视频播放修复了某些设备上VP9 Widevine播放错误;RTSP扩展增加了对包含尾部空格字符的会话描述的支持;Cast扩展新增了设备音量控制相关API。

在测试工具方面,移除了旧的音频编解码器测试配置方法,统一使用MediaCodecConfig进行配置,并将编解码器名称前缀从"exotest"改为"media3"。

总结

AndroidX Media 1.8.0-alpha01版本带来了多项实质性改进,特别是在播放优化、转码能力和下载功能方面。这些更新不仅提升了框架的性能和稳定性,也为开发者提供了更多灵活的控制选项。虽然目前是alpha版本,但这些改进预示着正式版将带来更强大的多媒体处理能力。

登录后查看全文
热门项目推荐

热门内容推荐

最新内容推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
154
1.98 K
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
405
387
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
941
555
金融AI编程实战金融AI编程实战
为非计算机科班出身 (例如财经类高校金融学院) 同学量身定制,新手友好,让学生以亲身实践开源开发的方式,学会使用计算机自动化自己的科研/创新工作。案例以量化投资为主线,涉及 Bash、Python、SQL、BI、AI 等全技术栈,培养面向未来的数智化人才 (如数据工程师、数据分析师、数据科学家、数据决策者、量化投资人)。
Python
75
70
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
992
395
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
509
44
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
344
1.32 K
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
194
279