媒體

Android Media HAL 圖示

Android 內含 Stagefright 是一款原生層級的媒體播放引擎 內建熱門媒體格式的軟體型轉碼器。

Stagefright 音訊和影片播放功能包括與 OpenMAX 轉碼器、工作階段管理、時間同步轉譯、傳輸 數位版權管理和 DRM 機制

此外,Stagefright 還能與 您。如要設定對媒體進行編碼及解碼的硬體路徑,您必須實作 硬體式轉碼器,如同 OpenMax IL (Integration Layer) 元件。

注意:階段可透過以下方式更新: Android 每月安全性 更新程序和 Android 作業系統版本中。

建築

媒體應用程式會與 Android 原生多媒體架構互動 屬性如下:

Android 媒體架構

圖 1. 媒體 建築

應用程式架構
應用程式架構層級是指應用程式程式碼 android.media 與多媒體硬體互動的 API。
繫結機制處理序間通訊
Binder IPC Proxy 有助於跨程序邊界進行通訊。 這些設定檔位於 frameworks/av/media/libmedia 目錄, 開頭的字母為「I」。
原生多媒體架構
就原生層面而言,Android 提供的多媒體架構可以 這是 Stagefright 引擎,可用於錄製及播放影片。舞台風 提供了預設的支援軟體轉碼器清單, 使用自己的硬體轉碼器適用對象 實作詳情,請參閱 MediaPlayer 和 Stagefright 元件 位於frameworks/av/media
OpenMAX 整合層 (IL)
OpenMAX IL 是 Stagefright 的標準化機制 使用稱為「元件」的自訂硬體式多媒體轉碼器。您必須提供 一種 OpenMAX 外掛程式,格式是共用程式庫 libstagefrighthw.so。這個外掛程式能將 Stagefright 連結至您的自訂 轉碼器元件,必須根據 OpenMAX IL 實作 元件標準

導入自訂轉碼器

Stagefright 內建適用於常見媒體格式的軟體轉碼器, 你也可以將自訂的硬體轉碼器新增為 OpenMAX 元件。待辦 ,您必須建立 OMX 元件和 OMX 外掛程式 自訂轉碼器和 Stagefright 架構。如需元件範例,請參閱 hardware/ti/omap4xxx/domx/;外掛程式範例 Galaxy Nexus,hardware/ti/omap4xx/libstagefrighthw

如何自行新增轉碼器:

  1. 請根據 OpenMAX IL 元件標準建立元件。 元件介面位於 frameworks/native/include/media/OpenMAX/OMX_Component.h 檔案。目的地: 如要進一步瞭解 OpenMAX IL 規格,請參閱 OpenMAX 網站
  2. 建立 OpenMAX 外掛程式,連結元件與 Stagefright 課程中也會快速介紹 Memorystore 這是 Google Cloud 的全代管 Redis 服務如要瞭解建立外掛程式的介面,請參閱 「frameworks/native/include/media/hardware/OMXPluginBase.h」和 HardwareAPI.h 個標頭檔案。
  3. 以下列名稱做為共用程式庫來建構外掛程式: libstagefrighthw.so。例如:
    LOCAL_MODULE := libstagefrighthw
    

    在裝置的 Makefile 中,請務必將模組宣告為產品 套件:

    PRODUCT_PACKAGES += \
      libstagefrighthw \
      ...
    

向架構公開轉碼器

Stagefright 服務剖析 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> 元素。