Google berkomitmen untuk memajukan ekuitas ras untuk komunitas kulit hitam. Lihat bagaimana.
Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Media

Ikon Android Media HAL

Android termasuk Stagefright, mesin pemutaran media di tingkat asli yang memiliki codec berbasis perangkat lunak bawaan untuk format media populer.

Fitur pemutaran audio dan video Stagefright termasuk integrasi dengan codec OpenMAX, manajemen sesi, rendering yang disinkronkan waktu, kontrol transport, dan DRM.

Stagefright juga mendukung integrasi dengan codec perangkat keras khusus yang disediakan oleh Anda. Untuk mengatur jalur perangkat keras untuk menyandikan dan mendekode media, Anda harus mengimplementasikan codec berbasis perangkat keras sebagai komponen OpenMax IL (Integration Layer).

Catatan: Pembaruan Stagefright dapat terjadi melalui proses pembaruan keamanan bulanan Android dan sebagai bagian dari rilis OS Android.

Arsitektur

Aplikasi media berinteraksi dengan kerangka kerja multimedia asli Android sesuai dengan arsitektur berikut.

Arsitektur media Android

Gambar 1. Arsitektur media

Kerangka Aplikasi
Pada tingkat kerangka aplikasi adalah kode aplikasi yang memanfaatkan android.media API untuk berinteraksi dengan perangkat keras multimedia.
Binder IPC
Proxy Binder IPC memfasilitasi komunikasi melewati batas proses. Mereka berada di direktori frameworks/av/media/libmedia dan mulai dengan huruf "I".
Kerangka Multimedia Asli
Di tingkat asli, Android menyediakan kerangka kerja multimedia yang memanfaatkan mesin Stagefright untuk perekaman dan pemutaran audio dan video. Stagefright hadir dengan daftar default dari codec perangkat lunak yang didukung dan Anda dapat mengimplementasikan codec perangkat keras Anda sendiri dengan menggunakan standar lapisan integrasi OpenMax. Untuk detail implementasi lebih lanjut, lihat komponen MediaPlayer dan Stagefright yang terletak di frameworks/av/media .
OpenMAX Integration Layer (IL)
OpenMAX IL menyediakan cara standar untuk Stagefright untuk mengenali dan menggunakan codec multimedia berbasis perangkat keras khusus yang disebut komponen. Anda harus menyediakan plugin OpenMAX dalam bentuk perpustakaan bersama bernama libstagefrighthw.so . Plugin ini menghubungkan Stagefright dengan komponen codec khusus Anda, yang harus diimplementasikan sesuai dengan standar komponen OpenMAX IL.

Menerapkan codec khusus

Stagefright dilengkapi dengan codec perangkat lunak bawaan untuk format media umum, tetapi Anda juga dapat menambahkan codec perangkat keras khusus Anda sebagai komponen OpenMAX. Untuk melakukan ini, Anda harus membuat komponen OMX dan plugin OMX yang menghubungkan codec kustom Anda dengan kerangka kerja Stagefright. Sebagai contoh komponen, lihat hardware/ti/omap4xxx/domx/ ; untuk contoh plugin untuk Galaxy Nexus, lihat hardware/ti/omap4xx/libstagefrighthw .

Untuk menambahkan codec Anda sendiri:

  1. Buat komponen Anda sesuai dengan standar komponen OpenMAX IL. Antarmuka komponen terletak di file frameworks/native/include/media/OpenMAX/OMX_Component.h . Untuk mempelajari lebih lanjut tentang spesifikasi OpenMAX IL, lihat situs web OpenMAX .
  2. Buat plugin OpenMAX yang menautkan komponen Anda dengan layanan Stagefright. Untuk antarmuka untuk membuat plugin, lihat frameworks/native/include/media/hardware/OMXPluginBase.h dan file header HardwareAPI.h .
  3. Bangun plugin Anda sebagai pustaka bersama dengan nama libstagefrighthw.so di Makefile produk Anda. Sebagai contoh:
    LOCAL_MODULE := libstagefrighthw
    

    Di Makefile perangkat Anda, pastikan Anda mendeklarasikan modul sebagai paket produk:

    PRODUCT_PACKAGES += \
      libstagefrighthw \
      ...
    

Mengekspos codec ke dalam framework

Layanan Stagefright mem-parsing system/etc/media_codecs.xml dan system/etc/media_profiles.xml untuk mengekspos codec dan profil yang didukung pada perangkat ke pengembang aplikasi melalui kelas android.media.MediaCodecList dan android.media.CamcorderProfile . Anda harus membuat kedua file di direktori device/<company>/<device>/ dan menyalinnya ke direktori system image system/etc di Makefile perangkat Anda. Sebagai contoh:

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 \

Untuk contoh lengkap, lihat device/samsung/tuna/media_codecs.xml dan device/samsung/tuna/media_profiles.xml .

Catatan: Pada Android 4.1, elemen <Quirk> untuk codec media tidak lagi didukung.