Latencia de audio para desarrolladores de aplicaciones

Para obtener la latencia de audio más baja posible, te recomendamos utilizar Oboe .

Oboe

Oboe utiliza audio nativo y está basado 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 utiliza AudioTrack para crear secuencias de audio de salida en Java para aplicaciones sensibles a la latencia, utilice el modo PERFORMANCE_MODE_LOW_LATENCY .

Lista de verificación de implementación

Para utilizar audio nativo de Android:

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

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

  5. Mantenga sus controladores de devolución de llamadas breves, sin un uso excesivo de la CPU ni bloqueos ilimitados. Evite la inversión de prioridad.
  6. Considere la posibilidad de utilizar 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 fabricantes de equipos originales que crean dispositivos Android y para los proveedores de SoC que suministran componentes a estos fabricantes de equipos originales.

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 .

Informar errores en el oboe

Si tienes problemas al utilizar Oboe, puedes presentar un error .

Vídeos

Empezando 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 de desarrolladores de Android 2018.
Audio de alto rendimiento en Android (Google I/O 2013)
Todo el vídeo 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 desarrollo de Google)
Describe la relación entre la latencia de audio, el tamaño del búfer y la programación de tareas.