Tunes4R — un núcleo de reproducción,
en todas tus pantallas.
Un reproductor de audio multiplataforma para Android, Android Automotive, iOS y macOS. Un único núcleo Rust maneja la reproducción en todas partes; Flutter construye la interfaz sobre él, para que la app se sienta nativa en cada plataforma sin cuatro bases de código luchando entre sí.
Cuatro plataformas, un solo motor
Android
Android Automotive
iOS
macOS
Reproducción que sobrevive a una mala red
Buscar en una pista en streaming significa obtener el rango de bytes correcto antes de poder decodificar nada — falla eso, y el desplazamiento se siente roto. El núcleo coordina peticiones de rango, un caché disperso de los bytes ya obtenidos y el estado de decodificación para que la búsqueda se mantenga responsiva incluso en medio de la transmisión.
El error que solo apareció en el coche
La reproducción en segundo plano se entrecortaba específicamente en Android Automotive — no en teléfonos, no consistentemente, y sin razón obvia en el pipeline de audio.
Se rastreó hasta el programador cgroup de Android, que silenciosamente degradaba la prioridad del hilo de decodificación cuando la app pasaba a segundo plano — hambriando justo el hilo que necesitaba seguir funcionando sin problemas.
Este es el tipo de falla que nunca aparece en una demostración y solo surge después de condiciones reales de conducción — la diferencia entre una app que funciona y una que realmente aguanta.
Construido en Flutter, ajustado a mano
El widget NowPlayingTab fue rediseñado para reducir la complejidad de las animaciones y corregir el centrado en modo retrato — pequeños detalles que determinan si la pantalla se siente sólida o ligeramente fuera de lugar.
Un widget ProgressSlider/BufferedSlider personalizado maneja tanto transmisiones en vivo como DVR, mostrando el rango almacenado en búfer por separado de la posición de reproducción.
Un editor de letras en Flutter con una línea de tiempo de forma de onda permite sincronizar las letras directamente contra el audio, en lugar de adivinarlas con marcas de tiempo.
La pantalla SongIdScreen fue rediseñada con estados de grabación animados, dando retroalimentación clara mientras la app escucha en busca de una coincidencia.
Un pipeline detrás del reproductor
Los metadatos no se ingresan a mano. Un pipeline ETL de MusicBrainz construido con Prefect y Python maneja la coincidencia, junto con la coincidencia de videos de YouTube y la resolución de carátulas — con un visualizador de espectro en Flutter como una pieza temprana de la experiencia de reproducción.
¿Quieres Tunes4R en una plataforma para la que estás construyendo?
Contáctanos sobre licencias del núcleo, una compilación personalizada o llevarlo a una nueva plataforma.