媒体模块负责处理媒体类型和编解码器、与 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 或更高版本的设备。
自定义
如需详细了解如何添加自定义提取器和解码器,请参阅自定义媒体组件。