O Google está comprometido em promover a equidade racial para as comunidades negras. Veja como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Áudio

Ícone Android HAL de áudio

A camada de abstração de hardware (HAL) de áudio do Android conecta as APIs da estrutura específica de áudio de nível superior no android.media ao driver e ao hardware subjacentes. Esta seção inclui instruções de implementação e dicas para melhorar o desempenho.

A arquitetura de áudio do Android define como a funcionalidade de áudio é implementada e aponta para o código-fonte relevante envolvido na implementação.

Arquitetura de áudio

Figura 1. Arquitetura de áudio do Android

Estrutura de aplicação
A estrutura do aplicativo inclui o código do aplicativo, que usa as APIs android.media para interagir com o hardware de áudio. Internamente, esse código chama as classes de cola JNI correspondentes para acessar o código nativo que interage com o hardware de áudio.
JNI
O código JNI associado ao android.media chama o código nativo de nível inferior para acessar o hardware de áudio. O JNI está localizado em frameworks/base/core/jni/ e frameworks/base/media/jni .
Estrutura nativa
A estrutura nativa fornece um equivalente nativo ao pacote android.media , chamando proxies IPC do Binder para acessar os serviços específicos de áudio do servidor de mídia. O código nativo da estrutura está localizado em frameworks/av/media/libmedia .
Fichário IPC
Os proxies do IPC do fichário facilitam a comunicação além dos limites do processo. Os proxies estão localizados em frameworks/av/media/libmedia e começam com a letra "I".
Servidor de mídia
O servidor de mídia contém serviços de áudio, que são o código real que interage com suas implementações HAL. O servidor de mídia está localizado em frameworks/av/services/audioflinger .
HAL
O HAL define a interface padrão na qual os serviços de áudio chamam e que você deve implementar para que seu hardware de áudio funcione corretamente. As interfaces HAL de áudio estão localizadas em hardware/libhardware/include/hardware . Para detalhes, consulte audio.h .
Driver do kernel
O driver de áudio interage com seu hardware e a implementação do HAL. Você pode usar a ALSA (Advanced Linux Sound Architecture), o Open Sound System (OSS) ou um driver personalizado (o HAL é independente de driver).

Nota : Se você usa o ALSA, recomendamos external/tinyalsa para a parte do usuário do driver devido ao seu licenciamento compatível (a biblioteca padrão do modo de usuário é licenciada pela GPL).

Áudio nativo do Android com base no Open SL ES (não mostrado)
Essa API é exposta como parte do Android NDK e está no mesmo nível de arquitetura do android.media .