Com o suporte do framework do Android 14, os OEMs podem configurar conversores (STBs) e dispositivos over-the-top (OTT) com alto-falantes integrados ou conectados como soundbars para dispositivos conectados. O modo de soundbar dinâmico (DSM, na sigla em inglês) no Android 14 oferece suporte aos atributos de controle de eletrônicos de consumo (CEC, na sigla em inglês) HDMI para soundbars, como o canal de retorno de áudio (ARC, na sigla em inglês) e o 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 aos requisitos de dispositivo e da interface do sistema listados nesta seção.
Requisitos do dispositivo
Para oferecer suporte ao DSM, o dispositivo STB ou OTT precisa atender aos seguintes requisitos:
- O dispositivo precisa executar o Android 14.
- Quando o DSM está ativado, o dispositivo precisa se comportar como uma soundbar seguindo as especificações HDMI CEC, como o ARC.
- O dispositivo precisa ser capaz de reproduzir som em alto-falantes integrados ou conectados.
- Quando o dispositivo não é uma fonte ativa, toda a mídia precisa ser pausada nele, limitando o consumo de energia.
Requisitos da interface do sistema
Para oferecer suporte ao DSM, os OEMs precisam atender aos seguintes requisitos ao projetar a interface do sistema:
- O rótulo da interface precisa incluir uma referência a ARC ou Canal de retorno de áudio (ARC).
- A interface precisa informar ao usuário para conectar o dispositivo à porta ARC da TV para estabelecer a conexão ARC.
- A interface precisa informar ao usuário que o recurso pode não funcionar como esperado se outra soundbar ou receptor de áudio e vídeo (AVR, na sigla em inglês) estiver conectado à rede HDMI.
- A interface precisa 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 precisará ser desativado por padrão.
Como prática recomendada, sugerimos usar o menu Tela e som como o local para a configuração do usuário ativar ou desativar o ARC, conforme mostrado na implementação da interface do sistema.
Implementação do framework
A implementação da funcionalidade de soundbar CEC e a alocação dinâmica do endereço lógico 5 existem no framework do Android. O framework aloca o endereço lógico quando a configuração da soundbar está ativada, para que o dispositivo se torne uma soundbar dinamicamente. Quando a configuração da soundbar está desativada, o framework 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 detecta a mudança na configuração CEC_SETTING_NAME_SOUNDBAR_MODE
para fazer o seguinte:
- Validar se um dispositivo de reprodução local existe e se a propriedade ARC é compatível.
- Acionar a alocação de endereço lógico para adicionar ou remover o dispositivo de áudio local.
- Garantir que o estado da configuração seja preservado, se o dispositivo for conectado a quente.
Confira o exemplo de declarações a seguir para definir e receber o status do modo de 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.
*
* 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() {}
Implementação do OEM
Para oferecer suporte ao recurso de soundbar dinâmico, os OEMs precisam garantir que o hardware seja compatível com ele. Os OEMs precisam configurar o dispositivo e implementar a interface do sistema para fornecer a interface necessária para as entradas do usuário.
Implementação do dispositivo
Para oferecer suporte ao recurso de soundbar em um dispositivo:
- Abra o dispositivo de reprodução no Android 14.
- Implemente a porta HDMI ARC no driver.
Deixe os valores de RRO de
config_cecSoundbarModeEnabled_defaulteconfig_cecSoundbarModeDisabled_defaultinalterados emconfig.xmlpara que o recurso permaneça desativado por padrão.Verifique se o dispositivo tem alto-falantes integrados ou conectados para reproduzir o áudio e edite a configuração da política de áudio.
Defina a propriedade do sistema
persist.sys.hdmi.property_arc_supportcomotruepara indicar que o ARC é compatível.Exponha a configuração para ativar ou desativar o modo de soundbar na interface do sistema.
Para depuração, use o seguinte comando
adbpara ativar ou desativar o recurso de soundbar (1para ativar e0para desativar):
adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>
Implementação da interface do sistema
Esta seção descreve um fluxo de interface simulado recomendado para ativar e desativar o DSM. A configuração Saída de áudio está no menu Tela e som , conforme mostrado na Figura 1:
Figura 1. Configuração de saída de áudio no menu Tela e som.
Para que o DSM funcione, a configuração Ativar HDMI-CEC precisa estar ativada. A configuração ARC só pode ser ativada se o HDMI-CEC estiver ativado. A configuração ARC fica indisponível e desativada se o HDMI-CEC estiver desativado, conforme mostrado na Figura 2. No fluxo de interface a seguir, quando o usuário desativa a configuração Ativar HDMI-CEC no menu Tela e som e seleciona Alto-falante doméstico, a configuração ARC é desativada. O usuário pode ativar a configuração Reproduzir áudio da televisão ativando Ativar HDMI-CEC.
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 em Saída de áudio para ativar e desativar o DSM. Para ativar o DSM, o usuário segue o fluxo de interface na Figura 3. No fluxo de interface a seguir, para ativar o modo de soundbar, o usuário seleciona Alto-falante doméstico e seleciona e confirma a configuração ARC. Para desativar o DSM, o usuário desativa a configuração ARC.
Figura 3. Interface 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 originário da TV ou de outros dispositivos conectados ao painel da TV.
Validação manual
Use os cenários a seguir para validar manualmente o comportamento esperado:
- A configuração ARC está ativada:
- A TV se silencia.
- O som da TV é encaminhado para os alto-falantes do dispositivo.
- A configuração ARC está desativada:
- A TV para de encaminhar o áudio para o dispositivo.
- A TV começa a reproduzir áudio.
- A configuração ARC está ativada 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á ativada e o endereço lógico 5 está em uso por outro dispositivo antes da conexão:
- O dispositivo se comporta como um dispositivo de reprodução puro, não como uma 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á mudança no comportamento da soundbar do dispositivo.
- A configuração ARC está ativada, 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 conexão ARC não é estabelecida com a TV para o segundo sistema de áudio porque ele usa um endereço lógico não registrado.
- A configuração ARC está ativada e o dispositivo está conectado a quente:
- O dispositivo segue o comportamento normal como quando a configuração está ativada.
Validação do CTS
CtsHdmiCecHostTestCases
é necessário para aprovar quando a configuração da soundbar está desativada. O HdmiCecSoundbarModeTest.java
teste 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 soundbar ativada para validar sua implementação.
Consulte Testes do CTS CEC para dispositivos Android TV para executar os testes do CTS do Android para HDMI CEC.