Hacer más fiables la reproducción y la sincronización de playlists en MetroList
Problema
La sincronización podía duplicar playlists y contribuir a problemas de memoria. El crossfade también debía tener en cuenta la velocidad de reproducción, mientras que algunos podcasts fallaban con IO_UNSPECIFIED por la validación de URL.
Cambios
Moví la limpieza de playlists antes del bucle de sincronización para evitar el procesamiento duplicado. Para el crossfade, ajusté el momento de activación a la velocidad de reproducción, conservé esa velocidad en el reproductor secundario y usé un PlayerMessage de ExoPlayer para sincronizar con precisión en el main looper. Para los podcasts, dejé de omitir la validación HEAD en streams WEB_REMIX y cerré correctamente la respuesta de OkHttp.
Resultado
La sincronización de playlists es menos propensa a errores, las transiciones siguen la velocidad de reproducción y la validación gestiona correctamente la fuente de podcast afectada.
Commits: playlist sync, crossfade timing, podcast playback