Google, Siyah topluluklar için ırksal eşitliği ilerletmeye kararlıdır. Nasıl olduğunu gör.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

medya

Android Media HAL simgesi

Android, popüler medya formatları için yerleşik yazılım tabanlı codec bileşenlerine sahip yerel düzeyde bir medya oynatma motoru olan Stagefright'ı içerir.

Stagefright ses ve video oynatma özellikleri arasında OpenMAX kodekleriyle entegrasyon, oturum yönetimi, zaman senkronize oluşturma, taşıma kontrolü ve DRM bulunur.

Stagefright ayrıca, sağladığınız özel donanım kodekleriyle entegrasyonu da destekler. Ortamı kodlamak ve kodunu çözmek için bir donanım yolu ayarlamak için, OpenMax IL (Entegrasyon Katmanı) bileşeni olarak donanım tabanlı bir codec bileşeni uygulamanız gerekir.

Not: Stagefright güncellemeleri, Android aylık güvenlik güncelleme işlemi sırasında ve Android OS sürümünün bir parçası olarak gerçekleşebilir.

Mimari

Medya uygulamaları, aşağıdaki mimariye göre Android yerel multimedya çerçevesiyle etkileşime girer.

Android medya mimarisi

Şekil 1. Medya mimarisi

Uygulama Çerçevesi
Uygulama çerçevesi düzeyinde, multimedya donanımıyla etkileşim kurmak için android.media API'lerini kullanan uygulama kodu bulunur.
Ciltçi IPC
Binder IPC proxy'leri işlem sınırları üzerinden iletişimi kolaylaştırır. frameworks/av/media/libmedia dizininde frameworks/av/media/libmedia ve "I" harfiyle başlarlar.
Yerel Multimedya Çerçevesi
Yerel düzeyde, Android ses ve video kaydı ve oynatma için Stagefright motorunu kullanan bir multimedya çerçevesi sağlar. Stagefright, desteklenen bir yazılım kodeklerinin varsayılan listesiyle birlikte gelir ve OpenMax entegrasyon katmanı standardını kullanarak kendi donanım kodekinizi uygulayabilirsiniz. Daha fazla uygulama ayrıntısı için, frameworks/av/media dizininde bulunan MediaPlayer ve Stagefright bileşenlerine bakın.
OpenMAX Entegrasyon Katmanı (IL)
OpenMAX IL, Stagefright için bileşenler adı verilen özel donanım tabanlı multimedya kodeklerini tanıması ve kullanması için standart bir yol sağlar. Libstagefrighthw.so adında paylaşılan bir kütüphane biçiminde bir OpenMAX eklentisi libstagefrighthw.so . Bu eklenti, Stagefright'ı OpenMAX IL bileşen standardına göre uygulanması gereken özel codec bileşenlerinizle ilişkilendirir.

Özel kodekleri uygulama

Stagefright, yaygın medya formatları için yerleşik yazılım kodekleriyle birlikte gelir, ancak kendi özel donanım kodeklerinizi OpenMAX bileşenleri olarak da ekleyebilirsiniz. Bunu yapmak için, özel kodeklerinizi Stagefright çerçevesiyle birleştiren OMX bileşenleri ve bir OMX eklentisi oluşturmanız gerekir. Örneğin bileşenler için bkz. hardware/ti/omap4xxx/domx/ ; Galaxy Nexus için örnek bir eklenti için bkz. hardware/ti/omap4xx/libstagefrighthw .

Kendi kodeklerinizi eklemek için:

  1. Bileşenlerinizi OpenMAX IL bileşen standardına göre oluşturun. Bileşen arabirimi frameworks/native/include/media/OpenMAX/OMX_Component.h dosyasında bulunur. OpenMAX IL spesifikasyonu hakkında daha fazla bilgi edinmek için OpenMAX web sitesine bakın.
  2. Bileşenlerinizi Stagefright hizmetine bağlayan bir OpenMAX eklentisi oluşturun. Eklentiyi oluşturmak için arabirimler için bkz. frameworks/native/include/media/hardware/OMXPluginBase.h ve HardwareAPI.h başlık dosyaları.
  3. Eklentinizi Makefile ürününüzde libstagefrighthw.so adıyla paylaşılan bir kütüphane olarak oluşturun. Örneğin:
    LOCAL_MODULE := libstagefrighthw
    

    Cihazınızın Makefile'sinde, modülü bir ürün paketi olarak beyan ettiğinizden emin olun:

    PRODUCT_PACKAGES += \
      libstagefrighthw \
      ...
    

Kodekleri çerçeveye maruz bırakma

Stagefright hizmeti, android.media.MediaCodecList ve android.media.CamcorderProfile sınıfları aracılığıyla aygıttaki desteklenen codec bileşenlerini ve profilleri uygulama geliştiricilerine göstermek için system/etc/media_codecs.xml ve system/etc/media_profiles.xml system/etc/media_codecs.xml ayrıştırır. Her iki dosyayı da device/<company>/<device>/ dizininde oluşturmalı ve bunu aygıtınızın Makefile dosyasındaki sistem görüntüsünün system/etc dizinine kopyalamalısınız. Örneğin:

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 bkz. device/samsung/tuna/media_codecs.xml ve device/samsung/tuna/media_profiles.xml .

Not: Android 4.1'den itibaren, medya codec bileşenleri için <Quirk> öğesi artık desteklenmemektedir.