Files
pluriwave/docs/audio-switching-notes.md
T
FreeTLab ef22454350
Build & Deploy Pluriwave / Build APK + AAB release (push) Successful in 1m15s
Build & Deploy Pluriwave / Análisis de código (push) Successful in 11s
fix(player): separate selection from audio state
2026-05-21 01:12:20 +02:00

2.4 KiB

Notas de reproducción de radio con just_audio/audio_service

Referencia interna para futuras correcciones del reproductor de PluriWave. Este archivo está en docs/ y no se incluye en flutter.assets, por lo que no compila dentro de la app.

Hallazgos útiles

  • AudioPlayer.play() completa cuando la reproducción termina, se pausa o se detiene. En radio en vivo no representa simplemente “ya empezó a sonar”.
  • Las versiones antiguas de PluriWave que sí cambiaban de emisora usaban el flujo simple de audio_service + just_audio: stop() -> setUrl() -> play() dentro de playMediaItem.
  • La regresión apareció cuando mezclamos dos responsabilidades: usar handler.emisoraActual como estado técnico de audio y también como estado visual inmediato para mostrar el mini reproductor.
  • En la versión vieja, el audio podía cambiar correctamente aunque emisoraActual no se usara como “selección visual inmediata”. Para arreglar el primer render del mini reproductor sin romper audio, conviene separar ambos conceptos.

Decisión aplicada en PluriWave

  • Restaurar el flujo histórico del handler: stop -> setUrl -> play.
  • Mantener la selección visual inmediata en EstadoRadio mediante una emisora seleccionada propia, separada del emisoraActual interno del handler.
  • No usar setAudioSource(..., preload: false) como reemplazo de setUrl(...): en esta app rompió incluso la primera conexión.
  • Proteger EstadoRadio.reproducir con revisión para que una operación vieja no aplique presets/clicks encima de una nueva.

Intentos descartados

  • setAudioSource(..., preload: false): teóricamente razonable, pero en PluriWave rompió la primera conexión.
  • Hacer que el handler publique emisoraActual antes de que el flujo histórico de audio avance: arregla el mini reproductor, pero cambia la semántica que tenían las versiones viejas.

Fuentes consultadas