fix(player): serialize live stream switching
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user