Mode barre de son dynamique

Avec la prise en charge du framework Android 14, les décodeurs (STB) et les appareils over-the-top (OTT) avec haut-parleurs intégrés ou connectés peuvent être configurés pour servir de barres de son pour les appareils connectés. Le mode barre de son dynamique (DSM) dans Android 14 prend en charge les attributs de contrôle de l'électronique grand public (CEC) HDMI pour les barres de son, tels que le canal de retour audio (ARC) et le contrôle audio du système.

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

Exigences

Pour adopter la fonctionnalité de barre de son, les OEM doivent répondre aux exigences en matière d'appareil et d'interface utilisateur système répertoriées dans cette section.

Exigences relatives à l'appareil

Pour prendre en charge DSM, l'appareil STB/OTT doit répondre aux exigences suivantes :

  • L'appareil doit exécuter Android 14.
  • Lorsque DSM est activé, l'appareil doit se comporter comme une barre de son suivant les spécifications HDMI CEC, telles que ARC.
  • L'appareil doit être capable de diffuser du son sur des haut-parleurs intégrés ou connectés.
  • Lorsque l'appareil n'est pas une source active, tous les médias doivent être mis en pause sur l'appareil, limitant ainsi sa consommation électrique.

Exigences de 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 :

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

Bonne pratique : nous vous recommandons d'utiliser le menu Affichage et son comme emplacement pour le paramètre utilisateur permettant d'activer ou de désactiver ARC , comme indiqué dans l'implémentation SysUI .

Mise en œuvre du cadre

L'implémentation de la fonctionnalité barre de son CEC et l'attribution 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 dynamiquement une barre de son. Lorsque le paramètre de la barre de son est désactivé, le framework libère l'adresse logique.

En fonction de la saisie de l'utilisateur sur 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 la modification du paramètre CEC_SETTING_NAME_SOUNDBAR_MODE pour effectuer les opérations suivantes :

  • Vérifiez si un périphérique de lecture local existe et si la propriété ARC est prise en charge.
  • Déclenchez l’attribution d’adresse logique pour ajouter ou supprimer le périphérique audio local.
  • Assurez-vous que l'état du paramètre est préservé si le périphérique est connecté à 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.
     *
     * <p>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.
     *
     * <p>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 OEM

Pour prendre en charge la fonctionnalité de barre de son dynamique, les constructeurs OEM doivent s'assurer que le matériel la prend en charge. Les OEM doivent configurer l'appareil et implémenter l'interface utilisateur du système pour fournir l'interface requise pour les entrées utilisateur.

Implémentation de l'appareil

Pour prendre en charge la fonctionnalité de barre de son 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 sur lesquels lire l'audio, et modifiez la configuration de la politique audio .

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

  6. Exposez le paramètre pour basculer le mode barre de son dans l' interface utilisateur système .

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

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 DSM. Le paramètre de sortie audio se trouve dans le menu Affichage et son , comme le montre 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 HDMI-CEC doit être activé. Le paramètre ARC ne peut être activé que si HDMI-CEC est activé. Le paramètre ARC est grisé et désactivé si HDMI-CEC est désactivé, comme indiqué dans 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 Haut-parleur d'accueil , l' ARC Le paramètre est désactivé. L'utilisateur peut activer le paramètre Lire l'audio du téléviseur en activant Enable 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 utiliser le paramètre ARC sous Sortie audio pour activer et désactiver DSM. Pour activer DSM, l'utilisateur suit le flux de l'interface utilisateur de la figure 3. Dans le flux de l'interface utilisateur suivant, pour activer le mode barre de son, l'utilisateur sélectionne Home Speaker , puis sélectionne et confirme le paramètre ARC . Pour désactiver DSM, l'utilisateur désactive le paramètre ARC .

dsm_ui_enable_arc

Figure 3. Interface utilisateur pour activer DSM.

Validation

Les constructeurs 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 au panneau 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 coupe automatiquement.
    • Le son du téléviseur est acheminé vers les haut-parleurs de l'appareil.
  • Le paramètre ARC est désactivé :
    • Le téléviseur arrête d'acheminer le son vers l'appareil.
    • Le téléviseur commence à lire le son.
  • Le paramètre ARC est activé et l'appareil est connecté à un port non-ARC du téléviseur :
    • L'appareil ne diffuse 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 que l'appareil ne soit connecté :
    • L'appareil se comporte comme un pur appareil de lecture, pas 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 :
    • Il n'y a aucun changement dans le comportement de la barre de son de l'appareil.
  • 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 le périphérique est connecté à chaud :
    • L'appareil suit un comportement normal comme lorsque le paramètre est activé.

Validation CTS

CtsHdmiCecHostTestCases doit être réussi 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 CEC CTS pour les appareils Android TV pour exécuter les tests Android CTS pour HDMI CEC.