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 dinâmico de soundbar (DSM) no Android 14 é compatível com os atributos de controle de eletrônicos de consumo (CEC) HDMI para soundbars, como 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 aos requisitos de dispositivo e 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 ter o Android 14.
- Quando o DSM está ativado, o dispositivo precisa se comportar como uma soundbar seguindo as especificações HDMI CEC, como ARC.
- O dispositivo precisa ser capaz de tocar 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 audiovisual (AVR) estiver conectado à rede HDMI.
- A interface precisa informar ao usuário que a tela pode piscar ao ativar/desativar a configuração.
- Se o dispositivo não tiver alto-falantes integrados, o DSM precisará ser desativado por padrão.
Como prática recomendada, recomendamos usar o menu Tela e som como o local da configuração do usuário para ativar ou desativar o ARC, conforme mostrado na implementação da SysUI.
Implementação do framework
A implementação da funcionalidade da soundbar CEC e a alocação dinâmica do endereço lógico 5 existem no framework Android. O framework aloca o endereço lógico quando a configuração da soundbar é 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
.
O HdmiControlService
detecta a mudança na configuração CEC_SETTING_NAME_SOUNDBAR_MODE
para fazer o seguinte:
- Valide se um dispositivo de reprodução local existe e se a propriedade ARC é compatível.
- Aciona a alocação de endereço lógico para adicionar ou remover o dispositivo de áudio local.
- Verifique se o estado da configuração é preservado se o dispositivo for conectado a quente.
Confira a amostra a seguir de declarações 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 de OEM
Para oferecer suporte ao recurso de soundbar dinâmica, os OEMs precisam garantir que o hardware seja compatível. Os OEMs precisam configurar o dispositivo e implementar a interface do sistema para fornecer a interface necessária para entradas do usuário.
Implementação de dispositivos
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_default
econfig_cecSoundbarModeDisabled_default
inalterados emconfig.xml
para 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_support
comotrue
para indicar que o ARC é compatível.Exponha a configuração para ativar/desativar o modo de soundbar na interface do sistema.
Para depurar, use o seguinte comando
adb
para ativar ou desativar o recurso da soundbar (1
para ativar e0
para desativar):
adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>
Implementação da SysUI
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 Tocar áudio da televisão ao ativar 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 da interface do usuário na figura 3. No fluxo da interface a seguir, para ativar o modo de soundbar, o usuário seleciona Alto-falante doméstico e confirma a configuração ARC. Para desativar o DSM, o usuário desativa a configuração ARC.
Figura 3. UI 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 toquem o som originado 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 tocar o á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 pura, não como uma soundbar.
- A configuração do 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ças no comportamento da soundbar do dispositivo.
- A configuração ARC está ativada, o endereço lógico 5 está sendo usado 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 é conectado a quente:
- O dispositivo segue o comportamento normal, como quando a configuração está ativada.
Validação do CTS
CtsHdmiCecHostTestCases
é obrigatório quando a configuração da soundbar está desativada. O teste HdmiCecSoundbarModeTest.java
no pacote 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 Teste do CTS de CEC para dispositivos Android TV para executar os testes do CTS do Android para HDMI CEC.