fix(player): restore historical station switching
Build & Deploy Pluriwave / Análisis de código (push) Successful in 11s
Build & Deploy Pluriwave / Build APK + AAB release (push) Successful in 1m22s

This commit is contained in:
2026-05-21 00:36:07 +02:00
parent 37aea7e99f
commit f49d349616
+3 -34
View File
@@ -1,4 +1,3 @@
import 'dart:async';
import 'dart:developer' as developer; import 'dart:developer' as developer;
import 'package:audio_service/audio_service.dart'; import 'package:audio_service/audio_service.dart';
@@ -216,16 +215,11 @@ class PluriWaveAudioHandler extends BaseAudioHandler with SeekHandler {
@override @override
Future<void> playMediaItem(MediaItem mediaItem) async { Future<void> playMediaItem(MediaItem mediaItem) async {
this.mediaItem.add(mediaItem); this.mediaItem.add(mediaItem);
emisoraActual = _emisoraDesdeMediaItem(mediaItem);
playbackState.add(playbackState.value.copyWith(
processingState: AudioProcessingState.loading,
playing: false,
errorMessage: null,
));
try { try {
await _resetearPlayerParaNuevaEmisora(); await _player.stop();
await _player.setUrl(mediaItem.id); await _player.setUrl(mediaItem.id);
_iniciarPlaybackSeguro(mediaItem); await _player.play();
emisoraActual = _emisoraDesdeMediaItem(mediaItem);
await _activarEcualizador(); await _activarEcualizador();
} on PlayerException catch (e) { } on PlayerException catch (e) {
_gestionarErrorReproduccion(e); _gestionarErrorReproduccion(e);
@@ -247,31 +241,6 @@ class PluriWaveAudioHandler extends BaseAudioHandler with SeekHandler {
} }
} }
Future<void> _resetearPlayerParaNuevaEmisora() async {
try {
await _player.stop();
await _player.seek(Duration.zero);
} catch (_) {
await _player.stop();
}
}
void _iniciarPlaybackSeguro(MediaItem item) {
unawaited(
_player.play().catchError((Object error, StackTrace stackTrace) {
developer.log(
'[PluriWave] Error al iniciar play: $error',
name: 'ServicioAudio',
level: 900,
stackTrace: stackTrace,
);
if (mediaItem.value?.id == item.id) {
_gestionarErrorReproduccion(error);
}
}),
);
}
Future<void> _activarEcualizador() async { Future<void> _activarEcualizador() async {
try { try {
final params = await _eq.parameters; final params = await _eq.parameters;