谷歌致力於推進種族平等的黑人社區。 怎麼看。
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

媒體

Android的媒體HAL圖標

Android包括怯場,媒體在已經內置了流行的媒體格式基於軟件的編解碼器的母語水平回放引擎。

怯場的音頻和視頻播放功能,包括與編解碼器的OpenMAX,會話管理,時間同步呈現,傳輸控制和DRM整合。

怯場還支持您所提供的自定義硬件編解碼器集成。要設置硬件路徑進行編碼和解碼的媒體,你必須實現基於硬件的編解碼器作為OpenMax的IL(集成層)組成。

注:怯場更新可以通過Android出現每月的安全更新程序,並作為Android操作系統發布的一部分。

建築

媒體應用與根據以下架構的Android原生的多媒體框架交互。

Android的媒體架構

圖1.媒體架構

應用程序框架
在應用程序框架層是利用應用程序代碼android.media API與多媒體硬件交互。
活頁夾IPC
活頁夾IPC代理有助於通過進程邊界通信。它們位於frameworks/av/media/libmedia目錄,並以字母“I”開頭。
本地多媒體框架
在本地層面,Android提供了一個多媒體框架,利用音頻和視頻的錄製和播放的怯場引擎。怯場帶有支持軟件編解碼器的默認列表,你可以通過使用OpenMax的集成層標準實現自己的硬件編解碼器。欲了解更多實施細節,請參見位於的MediaPlayer和怯場組件frameworks/av/media
的OpenMAX集成層(IL)
該IL的OpenMAX提供怯場識別和使用自定義的基於硬件的多媒體編解碼器調用的組件的標準方法。你必須提供一個名為共享庫的形式的OpenMAX插件libstagefrighthw.so 。這個插件鏈接怯場與您的自定義編解碼器組件,它必須根據的OpenMAX IL標準組件來實現。

實現自定義的編解碼器

怯場自帶的內置軟件編解碼器常見媒體格式,但你也可以添加自己的自定義硬件編解碼器的OpenMAX的組件。要做到這一點,你必須創建OMX組件和OMX插件鉤連同怯場框架您的自定義編解碼器。例如組件,請參閱所述hardware/ti/omap4xxx/domx/ ;為一個例子插件銀河的Nexus,見hardware/ti/omap4xx/libstagefrighthw

要添加自己的編解碼器:

  1. 根據的OpenMAX IL標準組件創建組件。組件接口位於frameworks/native/include/media/OpenMAX/OMX_Component.h文件。要了解更多有關的OpenMAX IL規範,指的OpenMAX網站
  2. 創建一個OpenMAX的插件,與怯場服務連接您的組件。對於接口來創建插件,見frameworks/native/include/media/hardware/OMXPluginBase.hHardwareAPI.h頭文件。
  3. 建立你的插件與名稱的共享庫libstagefrighthw.so你的產品的Makefile。例如:
    LOCAL_MODULE := libstagefrighthw
    

    在設備的Makefile文件,確保您聲明模塊作為產品包裝:

    PRODUCT_PACKAGES += \
      libstagefrighthw \
      ...
    

暴露解壓到框架

該怯場服務解析system/etc/media_codecs.xmlsystem/etc/media_profiles.xml在設備上支持的編解碼器和型材暴露於通過應用程序開發人員android.media.MediaCodecListandroid.media.CamcorderProfile類。您必須在創建這兩個文件device/<company>/<device>/目錄,並將此交給系統鏡像的system/etc在你的設備的Makefile目錄。例如:

PRODUCT_COPY_FILES += \
  device/samsung/tuna/media_profiles.xml:system/etc/media_profiles.xml \
  device/samsung/tuna/media_codecs.xml:system/etc/media_codecs.xml \

對於完整的實例,參見device/samsung/tuna/media_codecs.xmldevice/samsung/tuna/media_profiles.xml

注:隨著Android 4.1的,所述<Quirk>對媒體編解碼器元件不再支持。