Contenus multimédias

Icône HAL Android Media

Android inclut Stagefright, un moteur de lecture multimédia au niveau natif qui intègre des codecs logiciels pour les formats multimédias courants.

Les fonctionnalités de lecture audio et vidéo Stagefright incluent l'intégration avec Codecs OpenMAX, gestion des sessions, rendu synchronisé dans le temps, transport le contrôle et la DRM.

Stagefright permet également l'intégration avec les codecs matériels personnalisés fournis par vous. Pour définir un chemin d'accès matériel permettant d'encoder et de décoder le contenu multimédia, vous devez implémenter un du codec matériel en tant que composant OpenMax IL (Integration Layer)

Remarque:Les mises à jour de Stagefright peuvent se faire via Sécurité mensuelle Android de mise à jour et dans le cadre d'une version de l'OS Android.

Architecture

Les applications multimédias interagissent avec le framework multimédia natif Android. selon l'architecture suivante.

Architecture multimédia Android

Figure 1 : Multimédia de l'architecture

Framework d'application
Au niveau du framework d'application se trouve le code d'application qui utilise android.media des API pour interagir avec le matériel multimédia.
Classeur IPC
Les proxys d'IPC de liaison facilitent la communication sur les limites des processus. Ils se trouvent dans le répertoire frameworks/av/media/libmedia et par la lettre "I".
Framework multimédia natif
Au niveau natif, Android fournit un framework multimédia qui utilise le moteur Stagefright pour l'enregistrement et la lecture audio et vidéo. Le trac est fourni avec une liste par défaut des codecs logiciels pris en charge. Vous pouvez votre propre codec matériel en utilisant la norme de couche d'intégration OpenMax. Pour plus d'informations sur l'implémentation, consultez les composants MediaPlayer et Stagefright situé dans le pays suivant : frameworks/av/media.
Couche d'intégration OpenMAX (IL)
OpenMAX IL offre à Stagefright une méthode standardisée pour reconnaître et utilisent des codecs multimédias matériels personnalisés, appelés composants. Vous devez indiquer un plug-in OpenMAX sous la forme d'une bibliothèque partagée nommée libstagefrighthw.so Ce plug-in associe Stagefright à votre configuration personnalisée composants de codec, qui doivent être implémentés conformément à la norme OpenMAX IL composant standard.

Implémenter des codecs personnalisés

Stagefright intègre des codecs logiciels pour les formats multimédias courants, vous pouvez aussi ajouter vos propres codecs matériels personnalisés en tant que composants OpenMAX. À faire vous devez créer les composants OMX et un plug-in OMX qui relie les deux vos codecs personnalisés avec le framework Stagefright. Pour obtenir des exemples de composants, consultez hardware/ti/omap4xxx/domx/ ; pour obtenir un exemple de plug-in Galaxy Nexus, voir hardware/ti/omap4xx/libstagefrighthw.

Pour ajouter vos propres codecs:

  1. Créez vos composants conformément à la norme de composant OpenMAX IL. La de l'interface du composant frameworks/native/include/media/OpenMAX/OMX_Component.h. À pour en savoir plus sur la spécification OpenMAX IL, consultez Site Web OpenMAX
  2. Créer un plug-in OpenMAX qui associe vos composants à Stagefright Google Cloud. Pour découvrir les interfaces permettant de créer le plug-in, consultez frameworks/native/include/media/hardware/OMXPluginBase.h et HardwareAPI.h.
  3. Créez votre plug-in en tant que bibliothèque partagée portant le nom libstagefrighthw.so dans le fichier Makefile de votre produit. Par exemple:
    LOCAL_MODULE := libstagefrighthw
    

    Dans le fichier Makefile de votre appareil, veillez à déclarer le module en tant que produit package:

    PRODUCT_PACKAGES += \
      libstagefrighthw \
      ...
    

Exposer les codecs au framework

Le service Stagefright analyse l'system/etc/media_codecs.xml et system/etc/media_profiles.xml pour exposer les codecs compatibles et des profils de l'appareil aux développeurs d'applications via le android.media.MediaCodecList et android.media.CamcorderProfile. Vous devez créer les deux fichiers dans le répertoire device/<company>/<device>/ et copiez-le dans le répertoire system/etc de l'image système le fichier Makefile de votre appareil. Exemple :

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 \

Pour obtenir des exemples complets, consultez device/samsung/tuna/media_codecs.xml. et device/samsung/tuna/media_profiles.xml .

Remarque:À partir d'Android 4.1, les L'élément <Quirk> pour les codecs multimédias n'est plus accepté.