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ą.
- 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:
- 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. - 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
iHardwareAPI.h
plików nagłówka. - 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.