Modo soundbar dinâmico

Com o suporte do framework do Android 14, conversores (STBs) e dispositivos over-the-top (OTT) com alto-falantes integrados ou conectados podem ser configurados como soundbars para dispositivos conectados. Modo soundbar dinâmico (DSM) no Android 14 oferece suporte à conexão HDMI atributos de controle eletrônico (CEC, na sigla em inglês) para soundbars, como o canal de retorno de áudio (ARC) e controle de áudio do sistema.

Esse recurso é destinado apenas a dispositivos de reprodução CEC do Android TV.

Requisitos

Para adotar o recurso de soundbar, os OEMs precisam atender às especificações do dispositivo e da interface do sistema requisitos listados nesta seção.

Requisitos do dispositivo

Para oferecer suporte ao DSM, o dispositivo STB/OTT deve atender aos seguintes requisitos:

  • O dispositivo precisa ter o Android 14.
  • Quando o DSM está ativado, o dispositivo deve se comportar como uma soundbar seguindo o especificações HDMI CEC, como ARC;
  • O dispositivo precisa ser capaz de tocar som no integrado ou conectado. alto-falantes.
  • Quando o dispositivo não é uma fonte ativa, toda a mídia precisa ser pausada no do dispositivo, limitando o consumo de energia.
.

Requisitos da interface do sistema

Para dar suporte ao DSM, os OEMs devem atender aos seguintes requisitos ao projetar o Interface do sistema:

  • O rótulo da interface precisa incluir uma referência a ARC ou Canal de retorno de áudio (ARC, na sigla em inglês):
  • A interface precisa informar ao usuário para conectar o dispositivo à porta ARC da TV para para estabelecer a conexão ARC.
  • A interface precisa informar ao usuário que o recurso pode não funcionar como esperado se outro soundbar ou receptor de áudio/vídeo (AVR) está conectado ao cabo em uma rede VPC.
  • A interface precisa informar ao usuário que a tela pode piscar ao alternar o do ambiente.
  • Se o dispositivo não tiver alto-falantes integrados, o DSM deverá estar desativado por padrão.

Prática recomendada: é recomendável usar as APIs Display & Menu de som como o local para que a configuração do usuário ative ou desative a ARC, conforme mostrado em Implementação da SysUI.

Implementação da estrutura

A implementação da funcionalidade soundbar CEC e a alocação dinâmica do endereço lógico 5 existe na estrutura do Android. O framework aloca o endereço lógico quando a configuração do soundbar estiver ativada, para que o dispositivo se tornarem uma soundbar dinamicamente. Quando a configuração do soundbar está desativada, o desaloca o endereço lógico.

Com base na entrada do usuário na interface 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 ouve a mudança no CEC_SETTING_NAME_SOUNDBAR_MODE. para fazer o seguinte:

  • Valide se um dispositivo de reprodução local existe e se a propriedade ARC é suporte.
  • Acione a alocação de endereço lógico para adicionar ou remover o dispositivo de áudio local.
  • Confirme se o estado da configuração é preservado, caso o dispositivo esteja conectado.

Confira o exemplo de declarações a seguir para definir e receber 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 de OEM

Para oferecer suporte ao recurso de soundbar dinâmico, os OEMs precisam garantir que o hardware oferece suporte a ele. Os OEMs precisam configurar o dispositivo e implementar a interface do sistema para oferecer a interface necessária para entradas do usuário.

Implementação no dispositivo

Para oferecer suporte ao recurso soundbar em um dispositivo:

  1. Acesse 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 sem mudanças em config.xml para que o recurso permaneça desativado por padrão.

  4. Verifique se o dispositivo tem alto-falantes conectados para reproduzir o áudio e edite a configuração da política de áudio.

  5. Defina a propriedade do sistema persist.sys.hdmi.property_arc_support como true, para indicar que há suporte para o ARC.

  6. Exponha a configuração para alternar o modo soundbar na interface do sistema.

Para depuração, use o seguinte comando adb para ativar o recurso soundbar ou desativado (1 para ativado e 0 para desativado):

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

Implementação da SysUI

Esta seção descreve uma simulação de fluxo de interface do usuário para ativar e desativar o DSM. A configuração Saída de áudio está na guia Tela e Sound, conforme mostrado na Figura 1:

kubectl_audio_output

Figura 1. Configuração de saída de áudio na guia Tela e Som.

Para que o DSM funcione, a configuração Ativar HDMI-CEC deve estar ativada. O A configuração ARC só poderá ser ativada se o HDMI-CEC estiver ativado. A configuração ARC ficará esmaecida e desativada se o HDMI-CEC estiver desativado, como mostrado na figura 2. Na após o fluxo da interface, quando o usuário desativa a opção Ativar HDMI-CEC a página Exibir e Som e seleciona Alto-falante do Google Home, a configuração ARC. está desativado. O usuário pode ativar a configuração Reproduzir áudio da televisão: ative a opção Ativar HDMI-CEC.

kubectl_ui_disable_arc

Figura 2. Interface para a opção ARC desativada.

Quando a configuração HDMI-CEC está ativada, o usuário pode usar a configuração ARC no Saída de áudio para ativar e desativar o DSM. Para ativar o DSM, o usuário segue a UI na figura 3. No fluxo de interface a seguir, para ativar o modo soundbar, o usuário seleciona Alto-falante do Google Home e seleciona e confirma a configuração ARC. Para virar desativar o DSM, o usuário desativará a configuração ARC.

kubectl_ui_enable_arc

Figura 3. interface para ativar o DSM.

Validação

Os OEMs podem fazer um teste de áudio para garantir que os alto-falantes do dispositivo de reprodução tocar som da TV ou de outros dispositivos conectados à TV do painel de controle.

Validação manual

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

  • A configuração ARC está ativada:
    • O som da TV é desativado automaticamente.
    • O som da TV é encaminhado para os alto-falantes do dispositivo.
  • A configuração ARC está desativada:
    • A TV para de rotear o áudio para o dispositivo.
    • A TV vai começar a tocar áudio.
  • A configuração ARC está ativada e o dispositivo está conectado a um dispositivo não ARC para a TV:
    • O dispositivo não toca o som da TV.
  • A configuração ARC está ativada e o endereço lógico 5 está sendo usado por outro dispositivo antes de ser conectado:
    • O dispositivo se comporta como um dispositivo de reprodução pura, não um soundbar.
  • A configuração ARC está ativada, o endereço lógico 5 está em uso pelo dispositivo e outro sistema de áudio está conectado à rede:
    • Não há nenhuma mudança no comportamento da soundbar do dispositivo.
  • Se a configuração ARC estiver ativada, o endereço lógico 5 está em uso pelo dispositivo está conectado a uma porta não ARC e outro sistema de áudio está conectado ao Porta ARC:
    • A conexão ARC não é estabelecida com a TV para o segundo áudio porque usa um endereço lógico não registrado.
  • A configuração ARC está ativada e o dispositivo está conectado:
    • O dispositivo segue o comportamento normal, como quando a configuração está ativada.

Validação do CTS

CtsHdmiCecHostTestCases é necessária quando a configuração do soundbar está desativada. O HdmiCecSoundbarModeTest.java no pacote de testes CtsHdmiCecHostTestCases, testa as funcionalidades do DSM.

Embora não seja um requisito de certificação, execute CtsHdmiCecHostTestCases com o configuração do soundbar ativada para validar sua implementação.

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