Modo de barra de som dinâmico

Com suporte à estrutura do Android 14, decodificadores (STBs) e dispositivos over-the-top (OTT) com alto-falantes integrados ou conectados podem ser configurados para serem barras de som para dispositivos conectados. O modo de barra de som dinâmica (DSM) no Android 14 oferece suporte aos atributos de controle eletrônico de consumo (CEC) HDMI para barras de som, como canal de retorno de áudio (ARC) e controle de áudio do sistema.

Este recurso é direcionado apenas a dispositivos de reprodução Android TV CEC.

Requisitos

Para adotar o recurso de barra de som, os OEMs devem atender aos requisitos de dispositivo e UI do sistema listados nesta seção.

Requisitos do dispositivo

Para suportar DSM, o dispositivo STB/OTT deve atender aos seguintes requisitos:

  • O dispositivo deve rodar Android 14.
  • Quando o DSM está habilitado, o dispositivo deve se comportar como uma barra de som seguindo as especificações HDMI CEC, como ARC.
  • O dispositivo deve ser capaz de reproduzir som em alto-falantes integrados ou conectados.
  • Quando o dispositivo não é uma fonte ativa, toda a mídia deve ser pausada no dispositivo, limitando o consumo de energia.

Requisitos de IU do sistema

Para oferecer suporte ao DSM, os OEMs devem atender aos seguintes requisitos ao projetar a UI do sistema:

  • O rótulo da IU deve incluir uma referência a ARC ou Audio Return Channel (ARC) .
  • A UI deve informar ao usuário para conectar o dispositivo à porta ARC da TV para estabelecer a conexão ARC.
  • A IU deve informar ao usuário que o recurso pode não funcionar conforme esperado se outra barra de som ou receptor de áudio/vídeo (AVR) estiver conectado na rede HDMI.
  • A IU deve informar ao usuário que a tela pode piscar ao alternar a configuração.
  • Se o dispositivo não tiver alto-falantes integrados, o DSM deverá estar desabilitado por padrão.

Prática recomendada: recomendamos usar o menu Tela e som como local para a configuração do usuário ativar ou desativar o ARC , conforme mostrado na implementação do SysUI .

Implementação da estrutura

A implementação da funcionalidade da barra de som CEC e a alocação dinâmica do endereço lógico 5 existe na estrutura Android. A estrutura aloca o endereço lógico quando a configuração da barra de som está habilitada, para que o dispositivo se torne uma barra de som dinamicamente. Quando a configuração da barra de som está desabilitada, a estrutura desaloca o endereço lógico.

Com base na entrada do usuário na UI do sistema, HdmiControlManager define CEC_SETTING_NAME_SOUNDBAR_MODE como SOUNDBAR_MODE_ENABLED ou SOUNDBAR_MODE_DISABLED . O valor padrão de CEC_SETTING_NAME_SOUNDBAR_MODE é definido como SOUNDBAR_MODE_DISABLED .

HdmiControlService escuta a alteração na configuração CEC_SETTING_NAME_SOUNDBAR_MODE para fazer o seguinte:

  • Valide se existe um dispositivo de reprodução local e se a propriedade ARC é suportada.
  • Acione a alocação de endereço lógico para adicionar ou remover o dispositivo de áudio local.
  • Certifique-se de que o estado da configuração seja preservado, se o dispositivo estiver conectado a quente.

Veja o seguinte exemplo de declarações para definir e obter o status do modo soundbar:

    /**
     * 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() {}

Implementação OEM

Para oferecer suporte ao recurso de barra de som dinâmica, os OEMs devem garantir que o hardware o suporte. Os OEMs devem configurar o dispositivo e implementar a UI do sistema para fornecer a interface necessária para entradas do usuário.

Implementação de dispositivo

Para oferecer suporte ao recurso de barra de som em um dispositivo:

  1. Abra o dispositivo de reprodução no Android 14.
  2. Implemente a porta HDMI ARC no driver.
  3. Deixe os valores RRO de config_cecSoundbarModeEnabled_default e config_cecSoundbarModeDisabled_default inalterados em config.xml para que o recurso permaneça desabilitado por padrão.

  4. Certifique-se de que o dispositivo tenha alto-falantes integrados ou conectados para reproduzir o áudio e edite a configuração da política de áudio .

  5. Configure a propriedade do sistema persist.sys.hdmi.property_arc_support como true , para indicar que o ARC é suportado.

  6. Exponha a configuração para alternar o modo da barra de som na IU do sistema .

Para depuração, use o seguinte comando adb para ativar ou desativar o recurso da barra de som ( 1 para ativar e 0 para desativar):

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

Implementação SysUI

Esta seção descreve um fluxo de UI simulado recomendado para ativar e desativar o DSM. A configuração de saída de áudio está no menu Display & Sound , conforme mostrado na figura 1:

dsm_audio_output

Figura 1. Configuração de saída de áudio no menu Display & Sound .

Para que o DSM funcione, a configuração Ativar HDMI-CEC deve estar ativada. A configuração ARC só pode ser habilitada se HDMI-CEC estiver habilitado. A configuração ARC fica esmaecida e desabilitada se HDMI-CEC estiver desabilitado conforme mostrado na figura 2. No fluxo de UI a seguir, quando o usuário desativa a configuração Habilitar HDMI-CEC no menu Display & Sound e seleciona Home Speaker , o ARC configuração está desativada. O usuário pode ativar a configuração Reproduzir áudio da televisão ativando Ativar HDMI-CEC .

dsm_ui_disable_arc

Figura 2. UI para opção ARC desabilitada.

Quando a configuração HDMI-CEC está habilitada, o usuário pode usar a configuração ARC em Saída de áudio para ligar e desligar o DSM. Para ativar o DSM, o usuário segue o fluxo da UI na figura 3. No fluxo da UI a seguir, para ativar o modo soundbar, o usuário seleciona Home Speaker e seleciona e confirma a configuração ARC . Para desligar o DSM, o usuário desativa a configuração ARC .

dsm_ui_enable_arc

Figura 3. UI para ativar o DSM.

Validação

Os OEMs podem realizar um teste de áudio para garantir que os alto-falantes do dispositivo de reprodução reproduzam o som proveniente da TV ou de outros dispositivos conectados ao painel da TV.

Validação manual

Use os seguintes cenários para validar manualmente o comportamento esperado:

  • A configuração ARC está habilitada:
    • A TV silencia sozinha.
    • O som da TV é direcionado para os alto-falantes do dispositivo.
  • A configuração ARC está desabilitada:
    • A TV para de direcionar o áudio para o dispositivo.
    • A TV começa a reproduzir áudio.
  • A configuração ARC está habilitada e o dispositivo está conectado a uma porta não ARC da TV:
    • O dispositivo não reproduz o som da TV.
  • A configuração ARC está habilitada e o endereço lógico 5 está em uso por outro dispositivo antes de o dispositivo ser conectado:
    • O dispositivo se comporta como um dispositivo de reprodução puro, não como uma barra de som.
  • A configuração ARC está habilitada, o endereço lógico 5 está em uso pelo dispositivo e outro sistema de áudio está conectado na rede:
    • Não há alteração no comportamento da barra de som do dispositivo.
  • A configuração ARC está habilitada, o endereço lógico 5 está em uso pelo dispositivo conectado a uma porta não ARC e outro sistema de áudio está conectado à porta ARC:
    • A ligação ARC não é estabelecida com o televisor do segundo sistema de áudio porque utiliza um endereço lógico não registado.
  • A configuração ARC está habilitada e o dispositivo está hotplugged:
    • O dispositivo segue o comportamento normal como quando a configuração está habilitada.

Validação CTS

CtsHdmiCecHostTestCases é necessário para passar quando a configuração da barra de som está desativada. O teste HdmiCecSoundbarModeTest.java no conjunto de testes CtsHdmiCecHostTestCases testa as funcionalidades do DSM.

Embora não seja um requisito de certificação, execute CtsHdmiCecHostTestCases com a configuração da barra de som habilitada para validar sua implementação.

Consulte Teste CEC CTS para dispositivos Android TV para executar os testes Android CTS para HDMI CEC.