媒體

媒體模塊處理媒體類型和編解碼器,與 ExoPlayer 交互,向框架公開傳輸控制和播放信息,優化索引元數據和其他媒體相關功能。模塊是可更新的,這意味著它們可以在正常的 Android 發布週期之外接收功能更新。

媒體組件是攻擊的常見目標(最近的許多安全漏洞都與媒體相關),因此通過加速安全漏洞和功能的更新來加強安全性應該會減少可被攻擊利用的安全漏洞的數量。媒體框架保持可擴展性;合作夥伴可以繼續擴展媒體編解碼器和媒體格式提取器。

可更新的媒體組件

以下模塊中存在可更新的媒體組件。

  • 媒體模塊。包括以下媒體組件。

    • 媒體提取器處理不同類型的媒體。每個提取器都是一個單獨的.so文件,帶有一個嗅探器功能以確定提取器是否可以處理給定的媒體文件和一個為該媒體文件創建提取器實例的工廠函數。

    • MediaSession2 API 允許媒體應用程序將其傳輸控制和播放信息公開給其他進程,例如 Android 框架和其他應用程序。

    • MediaParser API(Android 11 中的新功能)允許 ExoPlayer 有效地利用框架媒體容器解析器從媒體容器中提取媒體樣本。

    • 兼容媒體轉碼(Android 12 中的新功能)啟用平台的兼容媒體轉碼功能。

  • 媒體編解碼器模塊。包括可更新的軟件 Codec2 組件。

  • 媒體提供者模塊。優化索引元數據(來自 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