fix(player): handle play errors on station switch
This commit is contained in:
@@ -223,9 +223,9 @@ class PluriWaveAudioHandler extends BaseAudioHandler with SeekHandler {
|
||||
errorMessage: null,
|
||||
));
|
||||
try {
|
||||
await _player.stop();
|
||||
await _resetearPlayerParaNuevaEmisora();
|
||||
await _player.setUrl(mediaItem.id);
|
||||
unawaited(_player.play());
|
||||
_iniciarPlaybackSeguro(mediaItem);
|
||||
await _activarEcualizador();
|
||||
} on PlayerException catch (e) {
|
||||
_gestionarErrorReproduccion(e);
|
||||
@@ -247,6 +247,31 @@ 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 {
|
||||
try {
|
||||
final params = await _eq.parameters;
|
||||
|
||||
Reference in New Issue
Block a user