Sincronización de listas y tiempos de crossfade en Metrolist

Escrito por Alessio el 30/7/2026

Problema

El tiempo del crossfade podía desviarse al cambiar la velocidad de reproducción y hacer que la pista siguiente comenzara antes de tiempo. Por otro lado, la sincronización podía duplicar listas y consumir demasiada memoria porque la limpieza se ejecutaba después de iniciar el ciclo de sincronización.

Cambios

Ajusté el cálculo del retraso del crossfade según la velocidad de reproducción, pasé esa velocidad al reproductor secundario y utilicé un PlayerMessage de ExoPlayer para sincronizar el momento con precisión en el hilo principal. Para la sincronización de listas, moví la limpieza antes del ciclo para eliminar entradas obsoletas antes de aplicar datos nuevos.

Resultado

Las transiciones de crossfade tienen en cuenta la velocidad de reproducción y la sincronización evita los problemas de duplicación y memoria corregidos por el cambio.

Commits: tiempos del crossfade, sincronización de listas