Pergunta

Portanto, qualquer pessoa que valha seu sal na comunidade de desenvolvimento do Android conhece a edição 3434 relacionada ao áudio de baixa latência no Android. Para aqueles que não o fazem, você pode se educar aqui. http://code.google.com/p/android/issues/detail?id=3434

Estou procurando qualquer tipo de solução temporária para o meu projeto pessoal. Ouvi dizer sobre a exposição de interfaces particulares ao NDK, rolando sua própria construção do Android e modificando o NDK.

Tudo o que preciso é uma maneira de acessar os drivers ALSA de baixo nível que já estão embalados com a compilação 2.2 padrão. Eu gostaria de ter a capacidade de enviar o PCM diretamente para o hardware de áudio no meu dispositivo. Não me importo que o aplicativo resultante não seja distribuível pelo mercado e provavelmente não será executado com nenhum outro dispositivo além do meu.

Alguém tem alguma idéia útil?

-Griff

EDIT: Devo mencionar, sei que o Audiotrack fornece essa funcionalidade, mas eu gostaria de uma latência muito menor-o áudio fica em torno de 300ms, eu gostaria de cerca de 20 a 30 ms.

Foi útil?

Solução

Griff, esse é apenas o problema, o NDK não melhorará a questão da latência conhecida (que está documentada). A camada de abstração de hardware no código nativo está atualmente aumentando a latência; portanto, não se trata apenas de acesso aos drivers de baixo nível (btw você não deve confiar nos motoristas da ALSA estarem lá de qualquer maneira).

Outras dicas

Android: API de som (determinística, baixa latência) cobre as compensações muito bem. Tl; dr: ndk oferece um benefício menor porque os threads podem ser executados com maior prioridade, mas esse benefício é pré-jellybean sem sentido porque todo o sistema de áudio está ajustado para Java.

O Galaxy Nexus em execução 4.1 pode ficar bastante próximo de 30ms de latência de saída.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top