Para a menor latência de áudio possível, recomendamos o uso do Oboe.
Oboe
Oboe usa áudio nativo e é criado no AAudio para Android 8.1 (nível
27 da API) e versões mais recentes e OpenSL ES. Para alcançar a menor latência possível em um dispositivo, defina setPerformanceMode(oboe::PerformanceMode::LowLatency) e setSharingMode(oboe::SharingMode::Exclusive). Para mais informações sobre
Oboe, consulte o guia de primeiros passos, README.md e o guia
completo. Consulte o app Soundboard para um app de exemplo que usa o Oboe.
Se você usar AudioTrack para criar streams de áudio de saída em Java para
apps 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:
- Baixe e instale o Android NDK.
- Siga o guia de primeiros passos do 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).Mantenha os gerenciadores de callback curtos, sem uso de CPU em burst ou bloqueio ilimitado. Evite a inversão de prioridade.
Considere usar algoritmos sem bloqueio para se comunicar entre os gerenciadores de callback de entrada e saída e entre os gerenciadores de callback e o restante do aplicativo.
android-ndk
Se você tiver dúvidas sobre como usar o áudio nativo do Android, participe do grupo de discussão android-ndk.
Informar bugs no Oboe
Se você tiver problemas ao usar o Oboe, informe um bug.
Vídeos
- Primeiros passos com o Oboe
- Áudio de baixa latência: porque seus ouvidos valem a pena (Conferência de Desenvolvedores Android 2018)
- Como vencer no Android: como otimizar um app de áudio do Android (Android Developer Challenge 2018)
- Áudio de alta performance no Android (Google I/O 2013)
- Como criar ótimas experiências multimídia no Android (Google I/O 2014)
- Latência de áudio: tamanhos de buffer (100 Days of Google Dev)