Multimedia

Ikona Android Media HAL

Android obejmuje Stagefright – mechanizm odtwarzania multimediów na poziomie natywnym który ma wbudowane kodeki programowe do obsługi popularnych formatów multimediów.

Funkcje odtwarzania dźwięku i wideo na platformie Stagefright obejmują integrację Kodeki OpenMAX, zarządzanie sesją, renderowanie zsynchronizowane czasowo, transport kontrolę i DRM.

Stagefright obsługuje również integrację z niestandardowymi kodekami sprzętowymi udostępnianymi przez do Ciebie. Aby ustawić ścieżkę sprzętową do kodowania i dekodowania multimediów, musisz zaimplementować jako komponent oprogramowania OpenMax IL (Integration Layer) jako komponent OpenMax IL (Integration Layer).

Uwaga: aktualizacje Stagefright mogą być przeprowadzane przez Android – comiesięczne zabezpieczenia i jako część systemu operacyjnego Android.

Architektura

Aplikacje multimedialne współdziałają z natywnym środowiskiem multimedialnym w Androidzie zgodnie z następującą architekturą.

Architektura multimediów na Androidzie

Rysunek 1. Multimedia architektura

Struktura aplikacji
Na poziomie platformy aplikacji jest to kod aplikacji, który wykorzystuje android.media, Interfejsy API umożliwiające interakcję ze sprzętem multimedialnym.
IPC wiązań
Serwery proxy IPC Binder ułatwiają komunikację ponad granicami procesów. Znajdują się w katalogu frameworks/av/media/libmedia i muszą zaczynać się od litery „I”.
Natywna platforma multimedialna
Na poziomie natywnym Android zapewnia platformę multimedialną, która wykorzystuje Silnik Stagefright do nagrywania i odtwarzania dźwięku i filmów. Strach przed festiwalem domyślnie zawiera listę obsługiwanych kodeków. Możesz zaimplementować z użyciem własnego kodeka sprzętowego, korzystając ze standardu warstwy integracji OpenMax. Dla: więcej szczegółów na temat implementacji znajdziesz w komponentach MediaPlayer i Stagefright w lokalizacji: frameworks/av/media.
OpenMAX Integration Layer (IL) (Warstwa integracji OpenMAX)
OpenMAX IL zapewnia platformie Stagefright ustandaryzowany sposób rozpoznawania i rozpoznawania używają niestandardowych kodeków multimedialnych nazywanych komponentami. Musisz podać wtyczki OpenMAX w postaci biblioteki udostępnionej o nazwie libstagefrighthw.so Ta wtyczka łączy Stagefright z Twoimi komponentów kodeków, które muszą być implementowane zgodnie z wytycznymi OpenMAX IL. standardem komponentu.

Implementacja niestandardowych kodeków

Stagefright ma wbudowane kodeki programowe do obsługi popularnych formatów multimediów, możesz też dodawać własne niestandardowe kodeki sprzętowe jako komponenty OpenMAX. Do zrobienia należy utworzyć komponenty OMX i wtyczkę OMX, z niestandardowych kodeków za pomocą platformy Stagefright. Przykładowe komponenty: hardware/ti/omap4xxx/domx/; znajdziesz przykładową wtyczkę dla Galaxy Nexus, patrz hardware/ti/omap4xx/libstagefrighthw.

Aby dodać własne kodeki:

  1. Twórz komponenty zgodnie ze standardem komponentów OpenMAX IL. interfejsu komponentu znajduje się w frameworks/native/include/media/OpenMAX/OMX_Component.h. Do więcej informacji o specyfikacji OpenMAX IL znajdziesz w Strona OpenMAX.
  2. Utwórz wtyczkę OpenMAX, która łączy komponenty ze Stagefright posprzedażna. Interfejsy do tworzenia wtyczki znajdziesz tutaj: frameworks/native/include/media/hardware/OMXPluginBase.h i HardwareAPI.h plików nagłówka.
  3. Utwórz wtyczkę jako bibliotekę udostępnianą o nazwie libstagefrighthw.so w pliku Makefile produktu. Na przykład:
    LOCAL_MODULE := libstagefrighthw
    

    W pliku Makefile na urządzeniu zadeklaruj moduł jako produkt. pakiet:

    PRODUCT_PACKAGES += \
      libstagefrighthw \
      ...
    

Udostępnianie kodeków w ramach platformy

Usługa Stagefright analizuje system/etc/media_codecs.xml i system/etc/media_profiles.xml, by udostępnić obsługiwane kodeki i profili na urządzeniu deweloperom aplikacji za pomocą android.media.MediaCodecList i android.media.CamcorderProfile zajęć. Musisz utworzyć oba pliki w katalogu device/<company>/<device>/ i skopiuj go do katalogu system/etc obrazu systemu w folderze program Makefile na urządzeniu. Na przykład:

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 \

Pełne przykłady: device/samsung/tuna/media_codecs.xml i device/samsung/tuna/media_profiles.xml .

Uwaga: w Androidzie 4.1 Element <Quirk> w przypadku kodeków multimediów nie jest już obsługiwany.