A camada de abstração de hardware de áudio (HAL) do Android conecta as APIs de framework de nível mais alto
e específicas de áudio a
android.media
os drivers de áudio e o hardware subjacentes. A HAL de áudio define a interface padrão
que os serviços de áudio fazem chamadas. O HAL de áudio precisa ser implementado para
que o hardware de áudio funcione corretamente.
Esta página oferece uma visão geral do HAL de áudio e detalhes sobre a API e os requisitos de implementação.
Interface HAL de áudio
No Android 14 e versões mais recentes, a interface da HAL de áudio é definida usando a AIDL. Para versões anteriores, a interface da HAL de áudio é definida usando a HIDL. Parceiros e fornecedores de SoC são incentivados a reimplementar a HAL de áudio para fornecer uma interface AIDL.
As novas APIs HAL para recursos adicionados no Android 14 e versões mais recentes têm somente suporte à implementação da interface AIDL. No Android 14 e versões mais recentes, nenhuma API nova é adicionada à implementação do HIDL.
A mudança para a AIDL e a descontinuação e remoção do suporte a versões principais anteriores da HAL de áudio libera espaço em disco e RAM nos dispositivos. Isso resulta em uma UX mais suave e permite que os usuários finais tenham acesso a recursos mais recentes.
Consulte Comparação entre a HAL de áudio AIDL e HIDL para mais informações sobre as diferenças entre a HAL de áudio AIDL e HIDL.
API Audio HAL
O HAL de áudio contém as seguintes APIs:
- O HAL principal é a API principal usada pelo AudioFlinger para reproduzir áudio e controlar o roteamento de áudio.
A API HAL de efeitos é usada pelo framework de efeitos para controlar efeitos de áudio. Também é possível configurar efeitos de pré-processamento, como controle automático de ganho e supressão de ruído, pela API Effects HAL.
A API Common HAL é uma biblioteca de tipos de dados comuns usados pelas APIs Core e Effects HAL. O HAL comum não tem interfaces nem testes VTS associados, porque define apenas estruturas de dados.
Consulte HAL de áudio AIDL e HAL de áudio HIDL para detalhes específicos relacionados à AIDL e à HIDL, respectivamente.
Requisitos
Além de implementar a HAL de áudio e criar o arquivo de configuração da política de áudio, você precisa aderir aos seguintes requisitos de HAL:
Se a captura para o Sound Trigger (captura do buffer DSP do comando de voz) tiver suporte de um perfil de entrada, a implementação precisará oferecer suporte ao número de streams ativos nesse perfil correspondente ao número de sessões simultâneas com suporte do HAL do Sound Trigger.
Concorrência de TX de chamada de voz e captura do processador do app, conforme detalhado na página Captura simultânea.