La pila de audio de Android: Por qué tu música se remuestrea
Un análisis profundo de cómo Android maneja el audio — desde la app hasta el altavoz. Aprende por qué AudioFlinger remuestrea tu música y qué puedes hacer al respecto.
Cómo reproduce audio Android
Cada sonido que tu teléfono Android produce — notificaciones, llamadas, efectos de juegos, música — viaja por el mismo pipeline de audio antes de llegar a tus oídos.
La ruta de audio estándar de Android:
App -> API AudioTrack -> AudioFlinger -> HAL (Capa de Abstracción de Hardware) -> Hardware
AudioFlinger es el controlador de tráfico del audio Android. Toma flujos de audio de cada app, los mezcla, aplica efectos del sistema, y enruta el resultado al dispositivo de salida correcto.
El problema de AudioFlinger
AudioFlinger opera a una tasa de muestreo fija — generalmente 48,000 Hz. Esta tasa fija existe porque AudioFlinger es fundamentalmente un mezclador que necesita combinar audio de múltiples fuentes en un solo flujo de salida.
Así que cada flujo de audio se remuestrea a la tasa fija del mezclador:
- Tu FLAC de alta resolución de 96 kHz: remuestreado a 48 kHz.
- Tu rip CD de 44.1 kHz en un mezclador de 48 kHz: remuestreado a 48 kHz.
- Tu podcast de 48 kHz en un dispositivo de 48 kHz: pasa sin cambios — tuviste suerte.
Google diseñó AudioFlinger para el caso general, y honestamente, es una decisión de ingeniería razonable para un teléfono de consumo. Pero nunca fue diseñado para reproducción audiófila.
La solución USB DAC
Los DACs USB conectados vía USB-C presentan la ruta más prometedora a audio de alta calidad en Android. Cuando las estrellas se alinean, AudioFlinger puede actuar como paso directo en lugar de remuestreador.
La app debe manejar complejidad significativa: sondear las tasas soportadas del dispositivo USB, solicitar la tasa correcta, verificar la tasa concedida, y manejar elegantemente la desconexión del dispositivo.
Bluetooth: Otra capa de conversión
Bluetooth añade un paso de conversión completamente separado. Después de que tu audio pasa por el mezclador del sistema, entra en la pila de audio Bluetooth donde se codifica en un códec de audio Bluetooth antes de la transmisión inalámbrica. Cada códec Bluetooth es con pérdida. Sin excepciones.
Para una comparación detallada de todos los códecs Bluetooth, consulta nuestra guía de códecs de audio Bluetooth.
Cómo Echobox navega la pila de audio Android
Diseñamos Echobox desde cero para trabajar con (y alrededor de) las restricciones del sistema de audio de Android. Nuestra arquitectura de tres capas — Flutter para la UI, Rust para la orquestación de audio y Zig para la salida en tiempo real — nos da un control inusual sobre lo que le pasa a tu audio.
Manejo inteligente de tasa de muestreo
En lugar de enviar audio ciegamente a cualquier tasa, negociamos activamente con el dispositivo, usando un remuestreador sinc de alta calidad con un filtro FIR de 256 taps y ventana BlackmanHarris cuando la tasa de la pista difiere de la del dispositivo. La ventaja crítica es evitar el doble remuestreo.
Modo bit-perfect
Para usuarios de DAC USB, Echobox ofrece modo bit-perfect que solicita la tasa nativa exacta de la pista y elude toda la cadena DSP. Si el DAC no puede soportar la tasa solicitada, la reproducción falla con un error claro en lugar de remuestrear silenciosamente.
Transparencia de ruta de señal
Echobox muestra la cadena de audio completa en tiempo real: formato fuente, si se está remuestreando, qué etapas DSP están activas, la tasa de salida real del dispositivo, y el códec Bluetooth si aplica.
Comportamiento consciente de la ruta
Echobox clasifica cada dispositivo de salida por tipo de ruta y adapta su comportamiento. Cuando se detecta Bluetooth, el modo bit-perfect se desactiva automáticamente. Para streaming UPnP/DLNA a altavoces de red, Echobox añade otra capa de inteligencia. También puedes consultar nuestra guía de reproductor de música audiófilo y la hoja de ruta para disponibilidad de plataformas.
La realidad del audio en Android
- AudioFlinger es el cuello de botella. Cada sonido en Android pasa por este mezclador del sistema a tasa fija (generalmente 48 kHz).
- Los DACs USB ofrecen la mejor ruta a calidad en Android.
- Android no ofrece modo exclusivo verdadero, a diferencia de WASAPI Exclusive en Windows.
- Bluetooth añade otra conversión con pérdida sobre todo lo demás. La reproducción bit-perfect es imposible por inalámbrico.
- Echobox maneja la complejidad sondeando tasas de dispositivo, realizando remuestreo de alta calidad, ofreciendo salida bit-perfect por USB DAC, y mostrándote exactamente qué está pasando vía diagnósticos de ruta de señal.