Mode barre de son dynamique

Grâce à la compatibilité avec le framework Android 14, les OEM peuvent configurer des décodeurs et des appareils de distribution par contournement (OTT) avec des haut-parleurs intégrés ou connectés pour qu'ils servent de barres de son pour les appareils connectés. Le mode barre de son dynamique (DSM) d'Android 14 est compatible avec les attributs HDMI Consumer Electronics Control (CEC) pour les barres de son, tels que le canal de retour audio (ARC) et le contrôle audio du système.

Cette fonctionnalité ne cible que les appareils de lecture CEC Android TV.

Conditions requises

Pour adopter la fonctionnalité de barre de son, les OEM doivent répondre aux exigences concernant l'appareil et l'UI système listées dans cette section.

Configuration d'appareil requise

Pour prendre en charge DSM, le décodeur ou l'appareil OTT doit répondre aux exigences suivantes :

  • L'appareil doit être équipé d'Android 14.
  • Lorsque DSM est activé, l'appareil doit se comporter comme une barre de son conformément aux spécifications HDMI CEC, telles que ARC.
  • L'appareil doit être capable de lire du son sur des haut-parleurs intégrés ou connectés.
  • Lorsque l'appareil n'est pas une source active, tous les contenus multimédias doivent être mis en pause sur l'appareil, ce qui limite sa consommation d'énergie.

Exigences concernant l'interface utilisateur du système

Pour prendre en charge DSM, les OEM doivent répondre aux exigences suivantes lors de la conception de l'interface utilisateur du système :

  • Le libellé de l'UI doit inclure une référence à ARC ou Audio Return Channel (ARC).
  • L'UI doit informer l'utilisateur qu'il doit connecter l'appareil au port ARC du téléviseur pour établir la connexion ARC.
  • L'UI doit informer l'utilisateur que la fonctionnalité peut ne pas fonctionner comme prévu si une autre barre de son ou un autre récepteur audio-vidéo (AVR) est connecté au réseau HDMI.
  • L'UI doit informer l'utilisateur que l'écran peut clignoter lors de l'activation ou de la désactivation du paramètre.
  • Si l'appareil ne possède pas de haut-parleurs intégrés, le DSM doit être désactivé par défaut.

Nous vous recommandons d'utiliser le menu Affichage et son comme emplacement du paramètre utilisateur permettant d'activer ou de désactiver ARC, comme indiqué dans Implémentation de SysUI.

Implémentation du framework

L'implémentation de la fonctionnalité CEC de la barre de son et de l'allocation dynamique de l'adresse logique 5 existe dans le framework Android. Le framework attribue l'adresse logique lorsque le paramètre de la barre de son est activé, pour que l'appareil devienne une barre de son de manière dynamique. Lorsque le paramètre de la barre de son est désactivé, le framework libère l'adresse logique.

En fonction de l'entrée utilisateur dans l'interface utilisateur du système, HdmiControlManager définit CEC_SETTING_NAME_SOUNDBAR_MODE sur SOUNDBAR_MODE_ENABLED ou SOUNDBAR_MODE_DISABLED. La valeur par défaut de CEC_SETTING_NAME_SOUNDBAR_MODE est définie sur SOUNDBAR_MODE_DISABLED.

HdmiControlService écoute les modifications apportées au paramètre CEC_SETTING_NAME_SOUNDBAR_MODE pour effectuer les opérations suivantes :

  • Validez si un appareil de lecture local existe et si la propriété ARC est prise en charge.
  • Déclenchez l'attribution d'adresses logiques pour ajouter ou supprimer le périphérique audio local.
  • Assurez-vous que l'état du paramètre est conservé si l'appareil est branché à chaud.

Consultez l'exemple de déclarations suivant pour définir et obtenir l'état du mode barre de son :

    /**
     * Name of a setting deciding whether the Soundbar mode feature is enabled.
     * Before exposing this setting make sure the hardware supports it, otherwise, you may
     * experience multiple issues.
     *
     * @see HdmiControlManager#setSoundbarMode(int)
     */
    public static final String CEC_SETTING_NAME_SOUNDBAR_MODE = "soundbar_mode";
    /**
     * Soundbar mode feature enabled.
     */
    public static final int SOUNDBAR_MODE_ENABLED = 1;
    /**
     * Soundbar mode feature disabled.
     */
    public static final int SOUNDBAR_MODE_DISABLED = 0;

   /**
     * Set the status of Soundbar mode feature.
     *
     * This allows to enable/disable Soundbar mode on the playback device.
     * The setting's effect will be available on devices where the hardware supports this feature.
     * If enabled, an audio system local device will be allocated and try to establish an ARC
     * connection with the TV. If disabled, the ARC connection will be terminated and the audio
     * system local device will be removed from the network.
     */
    public void setSoundbarMode(@SoundbarMode int value) {
    }

    /**
     * Get the current status of Soundbar mode feature.
     *
     * Reflects whether Soundbar mode is currently enabled on the playback device.
     * If enabled, an audio system local device will be allocated and try to establish an ARC
     * connection with the TV. If disabled, the ARC connection will be terminated and the audio
     * system local device will be removed from the network.
     */
    public int getSoundbarMode() {}

Implémentation par les OEM

Pour que la fonctionnalité de barre de son dynamique soit prise en charge, les OEM doivent s'assurer que le matériel est compatible. Les OEM doivent configurer l'appareil et implémenter l'UI système pour fournir l'interface requise pour les saisies utilisateur.

Implémentation de l'appareil

Pour que la fonctionnalité de barre de son soit disponible sur un appareil :

  1. Affichez l'appareil de lecture sur Android 14.
  2. Implémentez le port HDMI ARC dans le pilote.
  3. Laissez les valeurs RRO de config_cecSoundbarModeEnabled_default et config_cecSoundbarModeDisabled_default inchangées dans config.xml afin que la fonctionnalité reste désactivée par défaut.

  4. Assurez-vous que l'appareil dispose de haut-parleurs intégrés ou connectés pour lire l'audio, puis modifiez la configuration de la règle audio.

  5. Définissez la propriété système persist.sys.hdmi.property_arc_support sur true pour indiquer qu'ARC est compatible.

  6. Exposez le paramètre permettant d'activer ou de désactiver le mode barre de son dans l'interface utilisateur du système.

  7. Pour le débogage, utilisez la commande adb suivante pour activer ou désactiver la fonctionnalité de barre de son (1 pour activer et 0 pour désactiver) :

adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>

Implémentation de SysUI

Cette section décrit un flux d'interface utilisateur fictif recommandé pour activer et désactiver le DSM. Le paramètre Sortie audio se trouve dans le menu Affichage et son, comme illustré sur la figure 1 :

dsm_audio_output

Figure 1 : Paramètre de sortie audio dans le menu "Affichage et son".

Pour que DSM fonctionne, le paramètre Activer le HDMI-CEC doit être activé. Le paramètre ARC ne peut être activé que si le HDMI-CEC est activé. Le paramètre ARC est indisponible et désactivé si le HDMI-CEC est désactivé, comme illustré sur la figure 2. Dans le flux d'interface utilisateur suivant, lorsque l'utilisateur désactive le paramètre Activer HDMI-CEC dans le menu Affichage et son et sélectionne Enceinte connectée, le paramètre ARC est désactivé. L'utilisateur peut activer le paramètre Lire l'audio du téléviseur en activant Activer le HDMI-CEC.

dsm_ui_disable_arc

Figure 2. Interface utilisateur pour l'option ARC désactivée.

Lorsque le paramètre HDMI-CEC est activé, l'utilisateur peut activer et désactiver le DSM à l'aide du paramètre ARC sous Sortie audio. Pour activer le DSM, l'utilisateur suit le flux d'interface utilisateur de la figure 3. Dans le flux d'interface utilisateur suivant, pour activer le mode barre de son, l'utilisateur sélectionne Haut-parleur connecté, puis sélectionne et confirme le paramètre ARC. Pour désactiver DSM, l'utilisateur doit désactiver le paramètre ARC.

dsm_ui_enable_arc

Figure 3. Interface utilisateur permettant d'activer DSM.

Validation

Les OEM peuvent effectuer un test audio pour s'assurer que les haut-parleurs de l'appareil de lecture diffusent le son provenant du téléviseur ou d'autres appareils connectés à l'écran du téléviseur.

Validation manuelle

Utilisez les scénarios suivants pour valider manuellement le comportement attendu :

  • Le paramètre ARC est activé :
    • Le téléviseur se met en mode silencieux.
    • Le son du téléviseur est redirigé vers les haut-parleurs de l'appareil.
  • Le paramètre ARC est désactivé :
    • Le téléviseur cesse de router le son vers l'appareil.
    • Le téléviseur commence à lire le contenu audio.
  • Le paramètre ARC est activé et l'appareil est connecté à un port non ARC du téléviseur :
    • L'appareil ne lit pas le son du téléviseur.
  • Le paramètre ARC est activé et l'adresse logique 5 est utilisée par un autre appareil avant la connexion de l'appareil :
    • L'appareil se comporte comme un appareil de lecture pur, et non comme une barre de son.
  • Le paramètre ARC est activé, l'adresse logique 5 est utilisée par l'appareil et un autre système audio est connecté au réseau :
    • Le comportement de la barre de son de l'appareil ne change pas.
  • Le paramètre ARC est activé, l'adresse logique 5 est utilisée par l'appareil connecté à un port non ARC et un autre système audio est connecté au port ARC :
    • La connexion ARC n'est pas établie avec le téléviseur pour le deuxième système audio, car elle utilise une adresse logique non enregistrée.
  • Le paramètre ARC est activé et l'appareil est branché à chaud :
    • L'appareil se comporte normalement, comme lorsque le paramètre est activé.

Validation CTS

CtsHdmiCecHostTestCases doit être transmis lorsque le paramètre de la barre de son est désactivé. Le test HdmiCecSoundbarModeTest.java de la suite de tests CtsHdmiCecHostTestCases teste les fonctionnalités DSM.

Bien que cela ne soit pas une exigence de certification, exécutez CtsHdmiCecHostTestCases avec le paramètre de barre de son activé pour valider votre implémentation.

Consultez Tests CTS CEC pour les appareils Android TV pour exécuter les tests CTS Android pour HDMI-CEC.