Para a menor latência de áudio possível, recomendamos o uso do Oboe.
Oboe
O Oboe usa áudio nativo e foi criado
com base no AAudio para Android 8.1+ e no OpenSL ES para versões mais antigas do Android. Para alcançar a menor
latência possível de um dispositivo, defina setPerformanceMode(oboe::PerformanceMode::LowLatency)
e setSharingMode(oboe::SharingMode::Exclusive)
.
Consulte o guia de início,
README.md
e Guia completo para mais
informações sobre o Oboe. Consulte o app Soundboard
para conferir um exemplo de app que usa a Oboe.
Observação:se você usar AudioTrack
para criar streams de áudio de saída em Java para aplicativos sensíveis à latência, use o modo
PERFORMANCE_MODE_LOW_LATENCY
.
Lista de verificação da implementação
Para usar o áudio nativo do Android:
- Faça o download e instale o Android NDK.
- Siga o guia de primeiros passos para Oboe.
-
Chame
setPerformanceMode(oboe::PerformanceMode::LowLatency)
esetSharingMode(oboe::SharingMode::Exclusive)
no builder do Oboe. -
Use o tamanho de buffer nativo recomendado e a taxa de amostragem retornada por
android.media.AudioManager.getProperty(java.lang.String).
Observação:o mesmo tamanho de buffer e taxa de amostragem também precisam ser usados para a entrada.
- Mantenha os manipuladores de callback curtos, sem uso de CPU excessivo ou bloqueio ilimitado. Evite inversão de prioridade.
- Considere usar algoritmos não bloqueadores para se comunicar entre gerenciadores de callback de entrada e saída e entre os gerenciadores de callback e o restante do aplicativo.
Outros recursos
source.android.com
O site source.android.com foi criado principalmente para OEMs que criam dispositivos Android e para fornecedores de SoC que fornecem componentes para esses OEMs.
No entanto, há muitas informações úteis sobre latência neste site. Recomendamos que você o revise. Consulte os artigos em Latência de áudio.
android-ndk
Se você tiver dúvidas sobre como usar o áudio nativo do Android, faça perguntas no grupo de discussão android-ndk.
Informar bugs no Oboe
Se você tiver problemas ao usar a Oboe, registre um bug.
Vídeos
- Primeiros passos com o Oboe
- Áudio de baixa latência: porque seus ouvidos merecem isso
- Conferência de Desenvolvedores Android 2018.
- Como ter sucesso no Android: como otimizar um app de áudio para Android
- Android Developer Challenge 2018.
- Áudio de alto desempenho no Android (Google I/O 2013)
- O vídeo todo é sobre latência.
- Como criar ótimas experiências multimídia no Android (Google I/O 2014)
- Os primeiros 14 minutos são sobre áudio em geral e latência de entrada em particular.
- Latência de áudio: tamanhos de buffer (100 Days of Google Dev)
- Descreve a relação entre a latência de áudio, os tamanhos de buffer e a programação de tarefas.