Para obter a menor latência de áudio possível, recomendamos o uso do Oboe .
Oboé
Oboe usa áudio nativo e é construído em AAudio para Android 8.1+ e OpenSL ES para versões mais antigas do Android. Para obter a latência mais baixa possível para um dispositivo, defina setPerformanceMode(oboe::PerformanceMode::LowLatency)
e setSharingMode(oboe::SharingMode::Exclusive)
. Consulte o Guia de primeiros passos , README.md
e o Guia completo para obter mais informações sobre o Oboé. Consulte o aplicativo Soundboard para obter um exemplo de aplicativo usando Oboe.
Nota: Se você usar AudioTrack para criar fluxos de áudio de saída em Java para aplicativos sensíveis à latência, use o modo PERFORMANCE_MODE_LOW_LATENCY
.
Lista de verificação de implementação
Para usar áudio nativo do Android:
- Baixe e instale o Android NDK .
- Siga o guia de primeiros passos do Oboé.
- Chame
setPerformanceMode(oboe::PerformanceMode::LowLatency)
esetSharingMode(oboe::SharingMode::Exclusive)
no construtor Oboe. - Use o tamanho de buffer nativo recomendado e a taxa de amostragem retornada por android.media.AudioManager.getProperty(java.lang.String) .
Nota: O mesmo tamanho de buffer e taxa de amostragem também devem ser usados para entrada.
- Mantenha seus manipuladores de retorno de chamada curtos, sem uso excessivo de CPU ou bloqueio ilimitado. Evite a inversão de prioridades.
- Considere usar algoritmos sem bloqueio para comunicação entre manipuladores de retorno de chamada de entrada e saída e entre os manipuladores de retorno de chamada e o restante do seu aplicativo.
Outros recursos
fonte.android.com
O site source.android.com foi projetado principalmente para OEMs que criam dispositivos Android e fornecedores de SoC que fornecem componentes para esses OEMs.
No entanto, há muitas informações úteis sobre latência neste site, então você pode querer revisá-las. Veja os artigos em Latência de áudio.
android-ndk
Se você tiver dúvidas sobre como usar o áudio nativo do Android, pergunte no grupo de discussão android-ndk .
Reportar bugs no Oboé
Se você tiver problemas ao usar o Oboe, poderá registrar um bug .
Vídeos
- Começando com Oboé
- Áudio de baixa latência – porque seus ouvidos valem a pena
- Android Dev Summit 2018.
- Vencendo no Android – Como otimizar um aplicativo de áudio Android
- Desafio do desenvolvedor Android 2018.
- Áudio de alto desempenho no Android (Google I/O 2013)
- O vídeo inteiro é sobre latência.
- Construindo ó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 dias de Google Dev)
- Descreve a relação entre latência de áudio, tamanhos de buffer e agendamento de tarefas.