Medya

Android Media HAL simgesi

Android, yerel düzeyde medya oynatma motoru olan Stagefright'ı içerir .

Stagefright ses ve video oynatma özellikleri, OpenMAX codec'leri, oturum yönetimi, zaman senkronize oluşturma, aktarım kontrolü ve DRM.

Stagefright, Google Cloud Platform tarafından sağlanan özel donanım codec'leri ile entegrasyonu da destekler siz. Medyayı kodlamak ve kodunu çözmek üzere bir donanım yolu ayarlamak için OpenMax IL (Entegrasyon Katmanı) bileşeni olarak donanım tabanlı codec'i destekler.

Not: Stagefright güncellemeleri Android aylık güvenliği güncelleme işlemi olarak ve bir Android OS sürümünün parçası olarak.

Mimari

Medya uygulamaları, Android'in yerel multimedya çerçevesiyle etkileşime girer .

Android medya mimarisi

Şekil 1. Medya mimari

Uygulama Çerçevesi
Uygulama çerçevesi düzeyinde, android.media Multimedya donanımıyla etkileşim kuran API'ler.
Bağlayıcı IPC'si
Bağlayıcı IPC proxy'leri, işlem sınırları üzerinden iletişimi kolaylaştırır. Bunlar frameworks/av/media/libmedia dizinindedir ve "I" harfiyle başlar.
Doğal Multimedya Çerçevesi
Android, yerel düzeyde ses ve video kaydı ve oynatma için Stagefright motoru vardır. Stagefright desteklenen yazılım codec'lerinin varsayılan listesiyle gelir ve OpenMax entegrasyon katmanı standardını kullanarak kendi donanım codec'inizi oluşturun. Örneğin, hakkında daha fazla bilgi edinmek için MediaPlayer ve Stagefright bileşenlerine bakın frameworks/av/media adresinde bulunuyor.
OpenMAX Entegrasyon Katmanı (IL)
OpenMAX IL, Stagefright'ın bunu tanıması ve tanıması için standart bileşen adı verilen özel donanım tabanlı multimedya codec'lerini kullanma Aşağıdakileri sağlamalısınız: paylaşılan kitaplık biçimindeki bir OpenMAX eklentisi libstagefrighthw.so Bu eklenti, Stagefright'ı özel dosyanıza bağlar OpenMAX IL'ye göre uygulanması gereken codec bileşenleri bileşen standardıdır.

Özel codec'ler uygulama

Stagefright, yaygın medya biçimleri için yerleşik yazılım codec'leri içerir, ancak kendi özel donanım codec'lerinizi OpenMAX bileşenleri olarak da ekleyebilirsiniz. Yapılacaklar OMX bileşenlerini ve birbirine bağlanan bir OMX eklentisi oluşturmanız gerekir Stagefright çerçevesiyle entegre edebilirsiniz. Örneğin bileşenler, hardware/ti/omap4xxx/domx/; eklentisine örnek olarak Galaxy Nexus, bkz. hardware/ti/omap4xx/libstagefrighthw.

Kendi codec'lerinizi eklemek için:

  1. Bileşenlerinizi OpenMAX IL bileşen standardına göre oluşturun. İlgili içeriği oluşturmak için kullanılan bileşen arayüzünün frameworks/native/include/media/OpenMAX/OMX_Component.h dosyası yükleyin. Alıcı: OpenMAX IL spesifikasyonu hakkında daha fazla bilgi edinmek için OpenMAX web sitesi.
  2. Bileşenlerinizi Stagefright ile bağlayan bir OpenMAX eklentisi oluşturun geliştirmenizi sağlar. Eklentiyi oluşturma arayüzleri için bkz. frameworks/native/include/media/hardware/OMXPluginBase.h ve HardwareAPI.h başlık dosyası.
  3. Eklentinizi Ürününüzün Makefile'ında libstagefrighthw.so. Örnek:
    .
    LOCAL_MODULE := libstagefrighthw
    

    Cihazınızın Makefile'ında modülü ürün olarak bildirdiğinizden emin olun paket:

    PRODUCT_PACKAGES += \
      libstagefrighthw \
      ...
    

Codec'leri çerçeveye sunun

Stagefright hizmeti, system/etc/media_codecs.xml öğesini ayrıştırır ve desteklenen codec'leri göstermek için system/etc/media_profiles.xml ve profilleri kullanarak uygulama geliştiricilere android.media.MediaCodecList ve android.media.CamcorderProfile sınıf. Her iki dosyayı da oluşturmanız gerekir device/<company>/<device>/ dizininde ve bunu sistem görüntüsünün system/etc dizinine kopyalayın. cihazınızın Makefile'ı. Örnek:

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 \

Tüm örnekler için device/samsung/tuna/media_codecs.xml bölümüne bakın ve device/samsung/tuna/media_profiles.xml .

Not: Android 4.1 itibarıyla Medya codec'leri için <Quirk> öğesi artık desteklenmiyor.