Latência de áudio para desenvolvedores de apps

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:

  1. Baixe e instale o Android NDK.
  2. Siga o guia de primeiros passos do Oboe.
  3. Chame setPerformanceMode(oboe::PerformanceMode::LowLatency) e setSharingMode(oboe::SharingMode::Exclusive) no builder do Oboe.
  4. Use o tamanho de buffer nativo recomendado e a taxa de amostragem retornada por android.media.AudioManager.getProperty(java.lang.String).

  5. Mantenha os gerenciadores de callback curtos, sem uso de CPU em burst ou bloqueio ilimitado. Evite a inversão de prioridade.

  6. 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