fix: Properly close player on user switch

This commit is contained in:
PartyDonut 2025-08-14 22:17:42 +02:00
parent fc8a0e153b
commit e4c61aa43d
3 changed files with 9 additions and 5 deletions

View file

@ -11,6 +11,7 @@ import 'package:wakelock_plus/wakelock_plus.dart';
import 'package:fladder/models/item_base_model.dart';
import 'package:fladder/models/items/media_streams_model.dart';
import 'package:fladder/models/media_playback_model.dart';
import 'package:fladder/models/playback/playback_model.dart';
import 'package:fladder/models/settings/video_player_settings.dart';
import 'package:fladder/providers/settings/client_settings_provider.dart';
@ -237,6 +238,10 @@ class MediaControlsWrapper extends BaseAudioHandler {
@override
Future<void> stop() async {
final playbackModel = ref.read(playBackModel);
if (playbackModel == null) return;
ref.read(mediaPlaybackProvider.notifier).update((state) => state.copyWith(state: VideoPlayerState.disposed));
WakelockPlus.disable();
super.stop();
_player?.stop();
@ -247,7 +252,7 @@ class MediaControlsWrapper extends BaseAudioHandler {
// //Small delay so we don't post right after playback/progress update
await Future.delayed(const Duration(seconds: 1));
await ref.read(playBackModel)?.playbackStopped(position ?? Duration.zero, totalDuration, ref);
await playbackModel.playbackStopped(position ?? Duration.zero, totalDuration, ref);
ref.read(mediaPlaybackProvider.notifier).update((state) => state.copyWith(position: Duration.zero));
smtc?.setPlaybackStatus(PlaybackStatus.stopped);