Para obtener la latencia de audio más baja posible, te recomendamos que uses Oboe.
Oboe
Oboe usa audio nativo y se basa en AAudio para Android 8.1 (nivel de API
27) y versiones posteriores, y OpenSL ES. Para lograr la latencia más baja posible para un dispositivo, establece setPerformanceMode(oboe::PerformanceMode::LowLatency) y setSharingMode(oboe::SharingMode::Exclusive). Para obtener más información sobre
Oboe, consulta la guía de introducción, README.md y la guía
completa. Consulta la app de Soundboard para obtener una app de ejemplo que usa Oboe.
Si usas AudioTrack para crear transmisiones de audio de salida en Java para
apps sensibles a la latencia, usa el modo PERFORMANCE_MODE_LOW_LATENCY.
Lista de tareas para la implementación
Para usar audio nativo de Android, haz lo siguiente:
- Descarga e instala el NDK de Android.
- Sigue la guía de introducción para Oboe.
- Llama a
setPerformanceMode(oboe::PerformanceMode::LowLatency)ysetSharingMode(oboe::SharingMode::Exclusive)en el compilador de Oboe. Usa el tamaño del búfer nativo y la tasa de muestreo recomendados que muestra
android.media.AudioManager.getProperty(java.lang.String).Mantén los controladores de devolución de llamada cortos, sin uso de CPU en ráfagas ni bloqueo sin límites. Evita la inversión de prioridad.
Considera usar algoritmos sin bloqueo para comunicarte entre los controladores de devolución de llamada de entrada y salida, y entre los controladores de devolución de llamada y el resto de tu aplicación.
android-ndk
Si tienes preguntas sobre cómo usar audio nativo de Android, únete al grupo de debate android-ndk.
Cómo informar errores en Oboe
Si tienes problemas para usar Oboe, informa un error.
Videos
- Cómo comenzar con Oboe
- Audio de baja latencia: Porque tus oídos lo valen (Android Dev Summit 2018)
- Cómo ganar en Android: Cómo optimizar una app de audio para Android (Android Developer Challenge 2018)
- Audio de alto rendimiento en Android (Google I/O 2013)
- Cómo crear excelentes experiencias multimedia en Android (Google I/O 2014)
- Latencia de audio: tamaños del búfer (100 Days of Google Dev)