fix(player): restore historical station switching
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user