媒体

媒体模块负责处理媒体类型和编解码器、与 ExoPlayer 交互、向框架提供传输控件和播放信息,以及执行其他媒体相关函数。

媒体组件是常见的攻击目标(很多最近发现的安全 bug 都与媒体相关),因此通过加速安全 bug 和功能的更新来加强安全性应该会减少可被攻击利用的安全 bug 的数量。媒体框架仍然可扩展;合作伙伴可以继续扩展媒体编解码器和媒体格式提取器。

媒体模块和组件

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

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

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

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

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

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

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

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

模块格式

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

自定义

如需详细了解如何添加自定义提取器和解码器,请参阅自定义媒体组件