Tunes4R — um núcleo de reprodução,
todas as suas telas.
Um player de áudio multiplataforma para Android, Android Automotive, iOS e macOS. Um único núcleo Rust cuida da reprodução em todos os lugares; o Flutter constrói a interface sobre ele, para que o app seja nativo em cada plataforma sem quatro bases de código separadas competindo entre si.
Quatro plataformas, um mesmo motor
Android
Android Automotive
iOS
macOS
Reprodução que sobrevive a uma rede ruim
Buscar uma posição em uma faixa transmitida significa obter o intervalo de bytes correto antes de decodificar qualquer coisa — errar isso, e o scrub parece quebrado. O núcleo coordena requisições de intervalo, um cache esparso dos bytes já obtidos e o estado de decodificação para que a busca permaneça responsiva mesmo durante a transmissão.
O bug que só apareceu no carro
A reprodução em segundo plano engasgava especificamente no Android Automotive — não em celulares, não consistentemente, e não por nenhuma razão óbvia no próprio pipeline de áudio.
Rastreada ao escalonador cgroup do Android, que silenciosamente rebaixava a prioridade da thread de decodificação assim que o app ia para segundo plano — sufocando exatamente a thread que precisava continuar rodando suavemente.
Esse é o tipo de falha que nunca aparece em uma demonstração e só surge em condições reais de direção — a diferença entre um app que funciona e um que realmente se sustenta.
Construído em Flutter, ajustado à mão
O widget NowPlayingTab foi reprojetado para reduzir a complexidade das animações e corrigir o centralização no modo retrato — pequenos detalhes que determinam se a tela parece sólida ou ligeiramente estranha.
Um widget ProgressSlider/BufferedSlider personalizado lida com transmissões ao vivo e estilo DVR, mostrando o intervalo em buffer separadamente da posição de reprodução.
Um editor de letras Flutter com timeline de forma de onda permite sincronizar letras diretamente com o áudio, em vez de tentar adivinhar com timestamps.
A tela SongIdScreen foi reprojetada com estados de gravação animados, fornecendo feedback claro enquanto o app escuta em busca de uma correspondência.
Um pipeline por trás do player
Os metadados não são inseridos manualmente. Um pipeline ETL MusicBrainz construído com Prefect e Python cuida da correspondência, junto com correspondência de vídeos do YouTube e resolução de capas de álbuns — com um visualizador de espectro Flutter como parte inicial da experiência de reprodução.
Quer o Tunes4R em uma plataforma para a qual você está desenvolvendo?
Entre em contato sobre licenciamento do núcleo, uma compilação personalizada, ou trazê-lo para uma nova plataforma.