Latencia de audio para desarrolladores de aplicaciones

Para obtener la latencia de audio más baja posible, le recomendamos que utilice Oboe .

Oboe

Oboe usa audio nativo y se basa en AAudio para Android 8.1+ y OpenSL ES para versiones anteriores de Android. Para lograr la latencia más baja posible para un dispositivo, configure setPerformanceMode(oboe::PerformanceMode::LowLatency) y setSharingMode(oboe::SharingMode::Exclusive) . Consulte la guía de introducción , README.md y la guía completa para obtener más información sobre Oboe. Consulte la aplicación Soundboard para ver una aplicación de muestra que usa Oboe.

Nota: si usa AudioTrack para crear transmisiones de audio de salida en Java para aplicaciones sensibles a la latencia, use el modo PERFORMANCE_MODE_LOW_LATENCY .

Lista de verificación de implementación

Para usar el audio nativo de Android:

  1. Descargue e instale el NDK de Android .
  2. Siga la guía de introducción a Oboe.
  3. Llame setPerformanceMode(oboe::PerformanceMode::LowLatency) y setSharingMode(oboe::SharingMode::Exclusive) en el generador de Oboe.
  4. Usa el tamaño de búfer nativo recomendado y la frecuencia de muestreo devuelta por android.media.AudioManager.getProperty(java.lang.String) .

    Nota: También se debe usar el mismo tamaño de búfer y frecuencia de muestreo para la entrada.

  5. Mantenga sus controladores de devolución de llamada breves, sin un uso excesivo de la CPU o un bloqueo ilimitado. Evite la inversión de prioridad.
  6. Considere usar algoritmos sin bloqueo para comunicarse 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 su aplicación.

Otros recursos

fuente.android.com

El sitio source.android.com está diseñado principalmente para los OEM que fabrican dispositivos Android y los proveedores de SoC que suministran componentes a estos OEM.

Sin embargo, hay una gran cantidad de información útil sobre la latencia en este sitio, por lo que es posible que desee revisarla. Consulte los artículos en Latencia de audio.

android-ndk

Si tiene preguntas sobre cómo usar el audio nativo de Android, puede preguntar en el grupo de discusión android-ndk .

Reportar errores en Oboe

Si tiene problemas para usar Oboe, puede presentar un error .

Vídeos

Primeros pasos con el oboe
Audio de baja latencia: porque tus oídos lo valen
Cumbre de desarrolladores de Android 2018.
Ganar en Android: cómo optimizar una aplicación de audio de Android
Desafío para desarrolladores de Android 2018.
Audio de alto rendimiento en Android (Google I/O 2013)
Todo el video trata sobre la latencia.
Creación de excelentes experiencias multimedia en Android (Google I/O 2014)
Los primeros 14 minutos tratan sobre el audio en general y la latencia de entrada en particular.
Latencia de audio: tamaños de búfer (100 días de Google Dev)
Describe la relación entre la latencia de audio, los tamaños de búfer y la programación de tareas.