媒体模块处理媒体类型和编解码器,与 ExoPlayer 交互,向框架公开传输控制和播放信息,并执行其他与媒体相关的功能。
媒体组件是攻击的常见目标(最近的许多安全漏洞都与媒体相关),因此通过加速安全漏洞和功能的更新来加强安全性应该会减少可被攻击利用的安全漏洞的数量。媒体框架保持可扩展性;合作伙伴可以继续扩展媒体编解码器和媒体格式提取器。
媒体模块和组件
以下模块中存在可更新的媒体组件。
媒体模块。包括以下媒体组件。
媒体提取器处理不同类型的媒体。每个提取器都是一个单独的
.so
文件,带有一个嗅探器功能以确定提取器是否可以处理给定的媒体文件和一个为该媒体文件创建提取器实例的工厂函数。MediaSession2
API 允许媒体应用程序将其传输控制和播放信息公开给其他进程,例如 Android 框架和其他应用程序。MediaParser
API(Android 11 中的新功能)允许 ExoPlayer 有效地利用框架媒体容器解析器从媒体容器中提取媒体样本。兼容媒体转码(Android 12 中的新功能)启用平台的兼容媒体转码功能。
媒体编解码器模块。包括可更新的软件 Codec2 组件。
有关这些模块和组件的详细信息,请参阅媒体部分。
模块格式
媒体模块 ( com.android.media
) 和媒体编解码器模块 ( com.android.media.swcodec
) 采用APEX格式,适用于运行 Android 10 或更高版本的设备。
定制
有关添加自定义提取器和解码器的详细信息,请参阅自定义媒体组件。