desarrollo activo

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í.

Núcleo en RustUI en Flutter
// alcance

Cuatro plataformas, un solo motor

Android

Android Automotive

iOS

macOS

// el núcleo

Reproducción que sobrevive a una mala red

Decodificador SymphoniaPeticiones HTTP RangeSparseByteCacheFetchEngineSeekMode

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.

// confiabilidad

El error que solo apareció en el coche

Síntoma

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.

Causa raíz

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.

Por qué importa

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.

// interfaz

Construido en Flutter, ajustado a mano

Reproducción

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.

UI de Streaming

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.

Editor de letras

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.

Identificación de canciones

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.

// de dónde vienen los datos

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.

// conectar

¿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.