Google 致力于为黑人社区推动种族平等。查看具体举措

媒体

媒体模块负责处理媒体类型和编解码器、与 ExoPlayer 交互、向框架提供传输控件和播放信息、优化编入索引的元数据等。媒体模块可更新,意即这些模块可在 Android 常规发布周期外的时间接收功能更新。媒体组件是常见的攻击目标(很多最近发现的安全漏洞都与媒体相关),因此通过加速安全漏洞和功能的更新来加强安全性应该会减少可被攻击利用的安全漏洞的数量。媒体框架仍然可扩展;合作伙伴可以继续扩展媒体编解码器和媒体格式提取器。

可更新的媒体组件

以下模块中存在可更新的媒体组件。

  • 媒体模块 - 包括以下媒体组件。

    • 媒体提取器,用于处理不同类型的媒体。每个提取器都是一个单独的 .so 文件,包含一个嗅探器函数(用于确定提取器是否可以处理给定媒体文件)和一个工厂函数(用于为该媒体文件创建提取器实例)。

    • MediaSession2 API,可让媒体应用向其他进程(如 Android 框架和其他应用)提供其传输控件和播放信息。

    • MediaParser API(Android 11 中的新增项),可让 ExoPlayer 高效利用框架媒体容器解析器从媒体容器中提取媒体样本。

    • 兼容的媒体转码(Android 12 中的新功能)可实现平台的兼容媒体转码功能。

  • 媒体编解码器模块 - 包括可更新的软件 Codec2 组件。

  • MediaProvider 模块 - 优化编入索引的元数据(来自 SD 卡和 USB 设备的音频、视频和图片),并通过 MediaStore 公共 API 将这些数据提供给应用。

如需详细了解这些模块和组件,请参阅媒体部分。

模块格式

媒体模块 (com.android.media) 和媒体编解码器模块 (com.android.media.swcodec) 采用 APEX 格式,适用于搭载 Android 10 或更高版本的设备。MediaProvider 模块 (com.google.android.mediaprovider) 采用 APK-in-APEX 格式,适用于搭载 Android 11 或更高版本的设备。

自定义

如需详细了解如何添加自定义提取器和解码器,请参阅自定义媒体组件。如需详细了解如何添加新的媒体格式、控制将哪些存储设备编入索引以及替换 MTP 堆栈,请参阅 MediaProvider