Android include Stagefright, un motore di riproduzione multimediale a livello nativo che dispone di codec integrati basati su software per i formati multimediali più diffusi.
Le funzionalità di riproduzione audio e video di Stagefright includono l'integrazione con Codec OpenMAX, gestione delle sessioni, rendering sincronizzato nel tempo, trasporto e DRM.
Stagefright supporta anche l'integrazione con codec hardware personalizzati forniti te. Per impostare un percorso hardware per la codifica e la decodifica dei contenuti multimediali, devi implementare un codec basato su hardware come componente di OpenMax IL (Integration Layer).
Nota. Gli aggiornamenti di Stagefright possono avvenire tramite Sicurezza mensile di Android di aggiornamento e nell'ambito di una release del sistema operativo Android.
Architettura
Le applicazioni multimediali interagiscono con il framework multimediale nativo Android in base alla seguente architettura.
- Framework dell'applicazione
- A livello di framework dell'applicazione c'è il codice dell'applicazione che utilizza android.media API per interagire con l'hardware multimediale.
- IPC Binder
- I proxy IPC Binder facilitano la comunicazione oltre i confini dei processi.
Si trovano nella directory
frameworks/av/media/libmedia
e iniziare con la lettera "I". - Framework multimediale nativo
- A livello nativo, Android fornisce un framework multimediale che utilizza
il motore Stagefright per la registrazione e la riproduzione di audio e video. Spavento da palcoscenico
viene fornito con un elenco predefinito di codec software supportati e puoi implementare
il tuo codec hardware utilizzando lo standard del livello di integrazione OpenMax. Per
ulteriori dettagli sull'implementazione, consulta i componenti MediaPlayer e Stagefright
si trova in
frameworks/av/media
. - Livello di integrazione OpenMAX (IL)
- OpenMAX IL offre a Stagefright un metodo standardizzato per riconoscere e
utilizzare codec multimediali personalizzati
basati su hardware, chiamati componenti. Devi fornire
Un plug-in OpenMAX sotto forma di libreria condivisa denominata
libstagefrighthw.so
. Questo plug-in collega Stagefright al tuo account componenti codec, che devono essere implementati secondo lo standard OpenMAX IL standard dei componenti.
Implementa codec personalizzati
Stagefright è dotato di codec software integrati per i formati multimediali più comuni, ma
puoi anche aggiungere codec hardware personalizzati come componenti OpenMAX. Da fare
Devi creare i componenti OMX e un plug-in OMX che si collega
i tuoi codec personalizzati con il framework Stagefright. Per i componenti di esempio, consulta
hardware/ti/omap4xxx/domx/
; per un plug-in di esempio per
Galaxy Nexus, vedi hardware/ti/omap4xx/libstagefrighthw
.
Per aggiungere i tuoi codec:
- Crea i componenti secondo lo standard dei componenti OpenMAX IL. La
dell'interfaccia del componente
frameworks/native/include/media/OpenMAX/OMX_Component.h
. A per saperne di più sulla specifica OpenMAX IL, consulta Sito web OpenMAX. - Crea un plug-in OpenMAX che colleghi i tuoi componenti a Stagefright
completamente gestito di Google Cloud. Per le interfacce per la creazione del plug-in, consulta
frameworks/native/include/media/hardware/OMXPluginBase.h
eHardwareAPI.h
file di intestazione. - Sviluppa il tuo plug-in come libreria condivisa con il nome
libstagefrighthw.so
nel Makefile del prodotto. Ad esempio:
LOCAL_MODULE := libstagefrighthw
Nel Makefile del dispositivo, assicurati di dichiarare il modulo come prodotto pacchetto:
PRODUCT_PACKAGES += \ libstagefrighthw \ ...
Esponi i codec nel framework
Il servizio Stagefright analizza il system/etc/media_codecs.xml
e system/etc/media_profiles.xml
per esporre i codec supportati
e profili sul dispositivo agli sviluppatori di app tramite
android.media.MediaCodecList
e
android.media.CamcorderProfile
corsi. Devi creare entrambi i file
nella directory device/<company>/<device>/
e copiarlo nella directory system/etc
dell'immagine di sistema
il Makefile del dispositivo. Ad esempio:
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 \
Per esempi completi, vedi device/samsung/tuna/media_codecs.xml
e device/samsung/tuna/media_profiles.xml
.
Nota: a partire da Android 4.1, il
L'elemento <Quirk>
per i codec multimediali non è più supportato.