Sinalizadores AAOS de configuração de áudio,Sinalizadores AAOS de configuração de áudio

O Android Automotive OS (AAOS) usa sinalizadores e configurações para habilitar diferentes recursos, começando com roteamento dinâmico até sinalizadores de recursos mais genéricos, como controle de volume do serviço automotivo. Os sinalizadores atuais de configuração do AAOS para gerenciamento de áudio são descritos aqui.

Bandeira Propósito
audioUseDynamicRouting Definido no arquivo de configuração do serviço automotivo para Habilitar roteamento AAOS . A configuração deve ser definida como true . Quando false , o roteamento e grande parte do CarAudioService são desabilitados e o sistema operacional volta ao comportamento padrão descrito em Configurando políticas de áudio .
audioUseCarVolumeGroupMuting Definido no arquivo de configuração do serviço automotivo para ativar o silenciamento de grupos de volumes individuais. Quando definido como false (o valor padrão), o silenciamento de grupos de volumes individuais é desativado. Em vez disso, o silenciamento alterna o silenciamento mestre. Quando definido como true , o silenciamento do grupo de volume do carro é ativado e cada grupo de volume individual pode ser silenciado separadamente. Quando true , o silenciamento do grupo de volumes deve ser implementado no HAL de controle de áudio .
audioUseHalDuckingSignals Definido no arquivo de configuração do serviço automotivo para permitir que a API IAudioControl#onDevicesToDuckChange informe ao HAL quando se abaixar. Quando true (valor padrão), a API recebe sinais indicando quais dispositivos de saída devem ser evitados e quais usos mantêm o foco. Quando false , a API não é chamada. A API não é chamada a menos que o HAL de controle de áudio implemente a redução.
config_oemCarService Definido no arquivo de configuração do serviço automotivo, este é o nome do componente para o serviço de personalização OEM. Os OEMs podem optar por implementar este serviço para personalizar as ações de serviço automotivo para diferentes políticas. Se os OEMs optarem por implementar este componente, eles deverão implementar um serviço para estender OemCarService exposto por car-lib e, em seguida, implementar os serviços do componente necessários. Especificamente para serviços de áudio automotivo, os OEMs podem implementar qualquer um dos subserviços de áudio para gerenciar a ação de áudio. Para obter detalhes, consulte Serviço de plug-in de áudio automotivo . Se o nome do componente for inválido, CarService não se conectará a nenhum serviço OEM. O nome do componente não pode ser um pacote de terceiros. Deve ser pré-instalado.
audioVolumeAdjustmentContextsVersion

Definido no arquivo de configuração do serviço automotivo, configuração para selecionar a versão da lista de prioridades de contexto de ajuste de volume.

A versão 1 inclui todos os contextos de áudio, nesta ordem:

  • NAVIGATION
  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
  • CALL_RING
  • SYSTEM_SOUND
  • SAFETY
  • ALARM
  • NOTIFICATION
  • VEHICLE_STATUSEMERGENCY

A versão 2 está limitada aos seguintes contextos, nesta ordem.

A versão padrão é 1 .

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState Definido no arquivo de configuração do serviço automotivo, configuração para persistir o estado mudo global. Quando true (o valor padrão), o Android restaura o estado mudo global na inicialização. Quando audioUseCarVolumeGroupMuting for true , isso não terá impacto nas alterações persistentes de mudo, pois as alterações de mudo são baseadas em grupos de volumes individuais. O valor padrão é definido como true e deve ser substituído quando o silenciamento mestre não deve ser persistido para um dispositivo.
audioVolumeKeyEventTimeoutMs

Definido no arquivo de configuração do serviço automotivo, configuração para indicar o tempo limite em milissegundos enquanto um grupo de volume do carro é considerado ativo para alterações de controle de volume durante eventos de chave de volume. A configuração é usada da seguinte forma:

  • O tempo limite é usado para determinar se uma reprodução (volume de áudio associado ao uso de áudio da reprodução) ainda pode ser considerada para seleção automática de volume após a interrupção da reprodução.
  • O tempo limite também é usado como a duração da pausa necessária entre os ajustes automáticos de volume para alterar o que o usuário está ajustando.

O valor padrão é 3000 milissegundos e deve ser ajustado pelos OEMs para personalizar a experiência do usuário.

audioUseCarVolumeGroupEvent Definido no arquivo de configuração do serviço automotivo, configuração para ativar eventos de retorno de chamada para grupos de volumes. Quando true , os clientes recebem retorno de chamada por meio de ICarVolumeGroupEvent para eventos que impactam grupos de volumes. Quando ativado:

  • Recomendamos fortemente que os fornecedores também ofereçam suporte IAudioControl#setModuleChangeCallback e IAudioControl#registerGainCallback para eventos e alterações no hardware de áudio.
  • Quando CarVolumeCallback e CarVolumeGroupEventCallback são registrados pelo mesmo aplicativo, o índice do grupo de volumes e os retornos de chamada mudos do grupo de volumes devem passar apenas por CarVolumeGroupEventCallback . Portanto, recomendamos fortemente que todos os aplicativos migrem para a nova interface de retorno de chamada para garantir um desempenho consistente.
  • O valor padrão é false . Recomendamos que você defina isso como true porque as APIs para suporte a retornos de chamada de volumes legados estão obsoletas e serão totalmente removidas em breve.

config_useFixedVolume Definido em frameworks/base/core/res/res/values/config.xml . Deve ser definido como true para permitir que o serviço de áudio automotivo gerencie o controle de volume. Quando o sinalizador config_useFixedVolume não está definido ou está definido como false (o valor padrão), os aplicativos podem chamar as APIs de gerenciamento de volume AudioManager e alterar o volume por tipo de fluxo no mixer de software. Isso pode ser indesejável devido ao efeito potencial em outros aplicativos e ao fato de que a atenuação do volume no mixer de software pode resultar em menos bits significativos disponíveis no sinal quando recebido no amplificador de hardware. Novos dispositivos que não foram configurados e que estão definidos como true recebem alterações de volume por meio das APIs de volume e mudo AudioManager .
config_handleVolumeKeysInWindowManager Definido em frameworks/base/core/res/res/values/config.xml , deve ser definido como true para permitir que o serviço de áudio do carro intercepte eventos de chave de volume. Se definido como false (o valor padrão), os eventos de chave de volume podem ser encaminhados para o aplicativo em primeiro plano e podem levar a resultados adversos do gerenciamento de eventos de chave de volume fora do serviço de áudio do carro.

Configurações do serviço de áudio automotivo

Antes do Android 13, as configurações de serviço automotivo eram substituídas por uma sobreposição de configuração de produto (para saber mais, consulte Personalização do build com sobreposições de recursos ) para o arquivo packages/services/Car/service/res/values/config.xml .

PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>

A localização do arquivo de configuração de <path_to_overlay> até a localização real deve incluir packages/services/Car/service/res/values/ .

RROs de serviço de carro

Desde o Android 13, o AAOS oferece suporte a sobreposições de recursos de tempo de execução . Use um RRO para alterar o valor da configuração de áudio do carro. Por exemplo, consulte os RROs para a referência cuttlefish automotivo em device/google/cuttlefish/shared/auto/rro_overlay/ . A configuração audioUseDynamicRouting é substituída em device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml .

<resources>
    <bool name="audioUseDynamicRouting">true</bool>
...

O mapa de sobreposição de recursos está contido em device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/xml/overlays.xml :

<overlay>
...
  <item target="bool/audioUseDynamicRouting"
value="@bool/audioUseDynamicRouting" />
...
</overlay>

O manifesto de sobreposição de recursos definido em device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml contém o targetPackage definido como com.android.car.updatable .

Consulte estes recursos para obter mais informações:

API habilitada para recursos

O método retorna true se o recurso estiver habilitado no dispositivo, caso contrário, false . Na API CarAudioManager#isAudioFeatureEnabled , o parâmetro passado deve ser um dos seguintes:

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING
,

O Android Automotive OS (AAOS) usa sinalizadores e configurações para habilitar diferentes recursos, começando com roteamento dinâmico até sinalizadores de recursos mais genéricos, como controle de volume do serviço automotivo. Os sinalizadores atuais de configuração do AAOS para gerenciamento de áudio são descritos aqui.

Bandeira Propósito
audioUseDynamicRouting Definido no arquivo de configuração do serviço automotivo para Habilitar roteamento AAOS . A configuração deve ser definida como true . Quando false , o roteamento e grande parte do CarAudioService são desabilitados e o sistema operacional volta ao comportamento padrão descrito em Configurando políticas de áudio .
audioUseCarVolumeGroupMuting Definido no arquivo de configuração do serviço automotivo para ativar o silenciamento de grupos de volumes individuais. Quando definido como false (o valor padrão), o silenciamento de grupos de volumes individuais é desativado. Em vez disso, o silenciamento alterna o silenciamento mestre. Quando definido como true , o silenciamento do grupo de volume do carro é ativado e cada grupo de volume individual pode ser silenciado separadamente. Quando true , o silenciamento do grupo de volumes deve ser implementado no HAL de controle de áudio .
audioUseHalDuckingSignals Definido no arquivo de configuração do serviço automotivo para permitir que a API IAudioControl#onDevicesToDuckChange informe ao HAL quando se abaixar. Quando true (valor padrão), a API recebe sinais indicando quais dispositivos de saída devem ser evitados e quais usos mantêm o foco. Quando false , a API não é chamada. A API não é chamada a menos que o HAL de controle de áudio implemente a redução.
config_oemCarService Definido no arquivo de configuração do serviço automotivo, este é o nome do componente para o serviço de personalização OEM. Os OEMs podem optar por implementar este serviço para personalizar as ações de serviço automotivo para diferentes políticas. Se os OEMs optarem por implementar este componente, eles deverão implementar um serviço para estender OemCarService exposto por car-lib e, em seguida, implementar os serviços do componente necessários. Especificamente para serviços de áudio automotivo, os OEMs podem implementar qualquer um dos subserviços de áudio para gerenciar a ação de áudio. Para obter detalhes, consulte Serviço de plug-in de áudio automotivo . Se o nome do componente for inválido, CarService não se conectará a nenhum serviço OEM. O nome do componente não pode ser um pacote de terceiros. Deve ser pré-instalado.
audioVolumeAdjustmentContextsVersion

Definido no arquivo de configuração do serviço automotivo, configuração para selecionar a versão da lista de prioridades de contexto de ajuste de volume.

A versão 1 inclui todos os contextos de áudio, nesta ordem:

  • NAVIGATION
  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
  • CALL_RING
  • SYSTEM_SOUND
  • SAFETY
  • ALARM
  • NOTIFICATION
  • VEHICLE_STATUSEMERGENCY

A versão 2 está limitada aos seguintes contextos, nesta ordem.

A versão padrão é 1 .

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState Definido no arquivo de configuração do serviço automotivo, configuração para persistir o estado mudo global. Quando true (o valor padrão), o Android restaura o estado mudo global na inicialização. Quando audioUseCarVolumeGroupMuting for true , isso não terá impacto nas alterações persistentes de mudo, pois as alterações de mudo são baseadas em grupos de volumes individuais. O valor padrão é definido como true e deve ser substituído quando o mute mestre não deve ser persistido para um dispositivo.
audioVolumeKeyEventTimeoutMs

Definido no arquivo de configuração do serviço automotivo, configuração para indicar o tempo limite em milissegundos enquanto um grupo de volume do carro é considerado ativo para alterações de controle de volume durante eventos de chave de volume. A configuração é usada da seguinte forma:

  • O tempo limite é usado para determinar se uma reprodução (volume de áudio associado ao uso de áudio da reprodução) ainda pode ser considerada para seleção automática de volume após a interrupção da reprodução.
  • O tempo limite também é usado como a duração da pausa necessária entre os ajustes automáticos de volume para alterar o que o usuário está ajustando.

O valor padrão é 3000 milissegundos e deve ser ajustado pelos OEMs para personalizar a experiência do usuário.

audioUseCarVolumeGroupEvent Definido no arquivo de configuração do serviço automotivo, configuração para ativar eventos de retorno de chamada para grupos de volumes. Quando true , os clientes recebem retorno de chamada por meio de ICarVolumeGroupEvent para eventos que impactam grupos de volumes. Quando ativado:

  • Recomendamos fortemente que os fornecedores também ofereçam suporte IAudioControl#setModuleChangeCallback e IAudioControl#registerGainCallback para eventos e alterações no hardware de áudio.
  • Quando CarVolumeCallback e CarVolumeGroupEventCallback são registrados pelo mesmo aplicativo, o índice do grupo de volumes e os retornos de chamada mudos do grupo de volumes devem passar apenas por CarVolumeGroupEventCallback . Portanto, recomendamos fortemente que todos os aplicativos migrem para a nova interface de retorno de chamada para garantir um desempenho consistente.
  • O valor padrão é false . Recomendamos que você defina isso como true porque as APIs para suporte a retornos de chamada de volumes legados estão obsoletas e serão totalmente removidas em breve.

config_useFixedVolume Definido em frameworks/base/core/res/res/values/config.xml . Deve ser definido como true para permitir que o serviço de áudio automotivo gerencie o controle de volume. Quando o sinalizador config_useFixedVolume não está definido ou está definido como false (o valor padrão), os aplicativos podem chamar as APIs de gerenciamento de volume AudioManager e alterar o volume por tipo de fluxo no mixer de software. Isso pode ser indesejável devido ao efeito potencial em outros aplicativos e ao fato de que a atenuação do volume no mixer de software pode resultar em menos bits significativos disponíveis no sinal quando recebido no amplificador de hardware. Novos dispositivos que não foram configurados e que estão definidos como true recebem alterações de volume por meio das APIs de volume e mudo AudioManager .
config_handleVolumeKeysInWindowManager Definido em frameworks/base/core/res/res/values/config.xml , deve ser definido como true para permitir que o serviço de áudio do carro intercepte eventos de chave de volume. Se definido como false (o valor padrão), os eventos de chave de volume podem ser encaminhados para o aplicativo em primeiro plano e podem levar a resultados adversos do gerenciamento de eventos de chave de volume fora do serviço de áudio do carro.

Configurações do serviço de áudio automotivo

Antes do Android 13, as configurações de serviço automotivo eram substituídas por uma sobreposição de configuração de produto (para saber mais, consulte Personalização do build com sobreposições de recursos ) para o arquivo packages/services/Car/service/res/values/config.xml .

PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>

A localização do arquivo de configuração de <path_to_overlay> até a localização real deve incluir packages/services/Car/service/res/values/ .

RROs de serviço de carro

Desde o Android 13, o AAOS oferece suporte a sobreposições de recursos de tempo de execução . Use um RRO para alterar o valor da configuração de áudio do carro. Por exemplo, consulte os RROs para a referência cuttlefish automotivo em device/google/cuttlefish/shared/auto/rro_overlay/ . A configuração audioUseDynamicRouting é substituída em device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml .

<resources>
    <bool name="audioUseDynamicRouting">true</bool>
...

O mapa de sobreposição de recursos está contido em device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/xml/overlays.xml :

<overlay>
...
  <item target="bool/audioUseDynamicRouting"
value="@bool/audioUseDynamicRouting" />
...
</overlay>

O manifesto de sobreposição de recursos definido em device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml contém o targetPackage definido como com.android.car.updatable .

Consulte estes recursos para obter mais informações:

API habilitada para recursos

O método retorna true se o recurso estiver habilitado no dispositivo, caso contrário, false . Na API CarAudioManager#isAudioFeatureEnabled , o parâmetro passado deve ser um dos seguintes:

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING