15.4 Audio Hi-Res, ecualizadores, baja latencia y monitorización
Hi-Res Audio en Android
Android ofrece soporte nativo para reproducción en alta resolución (24-bit/96 kHz o superior) desde Android 7.0 (API 24). Para aprovecharlo:
- Configurar
AudioFormat.ENCODING_PCM_24BIT_PACKED
oPCM_FLOAT
enAudioTrack
. - Verificar la frecuencia de muestreo soportada con
AudioManager.getProperty(AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE)
. - Usar salidas USB-DAC o dispositivos certificados Hi-Res para obtener la mejor fidelidad.
Ecualizadores y procesamiento de audio
Android incluye una suite de efectos de audio basada en AudioEffect
. Los más habituales son:
Equalizer
: ajusta bandas de frecuencia (bajos, medios, agudos).BassBoost
: realza frecuencias graves.Virtualizer
: simula efectos surround.PresetReverb
yEnvironmentalReverb
: añaden reverberación.
Ejemplo básico de uso de Equalizer
:
- Crear instancia:
new Equalizer(0, audioSessionId)
. - Habilitar:
eq.setEnabled(true)
. - Ajustar banda:
eq.setBandLevel(bandIndex, levelMillibels)
.
Baja latencia de audio
Para aplicaciones interactivas (juegos, instrumentos virtuales) es clave minimizar el retardo entre entrada y salida:
- Desde Android 8.0 (Oreo) se introdujo
AAudio
, con latencias muy reducidas (~5 ms). - Alternativa nativa: OpenSL ES para versiones anteriores.
- En Java puro:
AudioTrack
yAudioRecord
, ajustando tamaños de buffer. - Consultar
AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER
para obtener buffers óptimos.
Comparativa de APIs de baja latencia
API | Latencia típica | Notas |
AudioTrack/AudioRecord | 15–30 ms | Java, fácil de usar |
OpenSL ES | 8–15 ms | Nativo C/C , desde API 9 |
AAudio | 5–10 ms | Recomendado en Oreo (API 26) y posteriores |
Monitorización de audio
La monitorización permite visualizar o analizar en tiempo real la señal de entrada/salida:
AudioRecord
: para capturar audio y procesarlo.Visualizer
(clase Android): ofrece FFT y niveles RMS para crear gráficas en pantalla.- Uso general:
- Crear
Visualizer(audioSessionId)
y habilitar. - Configurar tamaño de búfer de datos con
setCaptureSize()
. - Registrar
OnDataCaptureListener
para recibir callbacks.
- Crear
Con estas herramientas avanzadas podrás ofrecer en Android experiencias de audio de alta fidelidad, procesamiento profesional, latencias reducidas y monitorización en tiempo real.
Profundizando sobre: 15.4 Audio Hi-Res, ecualizadores, baja latencia y monitorización
- Pro Android Media de Dave MacLean y Jeff McWherter (Apress) – Cobertura detallada de APIs de audio de Android, procesamiento en tiempo real, ecualizadores y monitorización.
- Android High Performance Audio de Sergey Shevchenko – Guía centrada en técnicas de baja latencia usando AAudio y Oboe, optimización de rutas de audio Hi-Res.
- Game Music and Audio: A Practical Guide de Richard Stevens y Dave Raybould – Aunque enfocado en juegos, incluye capítulos sobre ecualización, mezcla y monitorización en dispositivos Android.
- Android Audio Programming Guide (documentación oficial) – Sección de “Audio on Android”: https://developer.android.com/guide/topics/media/audio
- Audio NDK Guide (Google Developers) – APIs nativas para baja latencia y Hi-Res: https://developer.android.com/ndk/guides/audio
- Oboe (biblioteca C de Google) – Implementación de audio de baja latencia: repositorio GitHub y ejemplos prácticos: https://github.com/google/oboe
- AAudio API Reference – Documentación de la API nativa para flujos de audio de alta fidelidad: https://developer.android.com/ndk/reference/group/audio
- Android Compatibility Definition Document (CDD) – Requisitos de soporte para audio Hi-Res en dispositivos Android: https://source.android.com/compatibility/cdd
- Building Low-Latency Audio Apps on Android (Medium) – Serie de artículos con ejemplos y benchmarks: https://medium.com/google-developers/building-low-latency-audio-apps-on-android-2f9f5f47b6d6
- Stack Overflow y foros de Google Groups – Etiquetas “android-audio”, “oboe”, “aaudio” para casos prácticos y soluciones a problemas de latencia y ecualización.
Deja una respuesta