fix(player): serialize live stream switching
Build & Deploy Pluriwave / Build APK + AAB release (push) Successful in 1m24s
Build & Deploy Pluriwave / Análisis de código (push) Successful in 12s

This commit is contained in:
2026-05-21 00:50:17 +02:00
parent 26d8151d7a
commit 6b0faebc7f
4 changed files with 197 additions and 13 deletions
+5
View File
@@ -45,6 +45,7 @@ class EstadoRadio extends ChangeNotifier {
late final ServicioTimer timer;
StreamSubscription<EstadoReproduccion>? _suscripcionEstadoAudio;
Future<void>? _initFuture;
int _revisionReproduccion = 0;
// Errores de reproducción → SnackBar.
final _errorController = StreamController<String>.broadcast();
@@ -303,12 +304,16 @@ class EstadoRadio extends ChangeNotifier {
}
Future<void> reproducir(Emisora emisora) async {
final revision = ++_revisionReproduccion;
try {
await audio.reproducir(emisora);
if (revision != _revisionReproduccion) return;
unawaited(radio.registrarClick(emisora.uuid));
await _aplicarPresetActivo(_presetParaEmisora(emisora.uuid));
if (revision != _revisionReproduccion) return;
notifyListeners();
} catch (e) {
if (revision != _revisionReproduccion) return;
if (timer.activo) {
unawaited(timer.cancelar());
}