From e07f28012404b31e777d1ba14e7a50e8d12fb030 Mon Sep 17 00:00:00 2001 From: PartyDonut <42371342+PartyDonut@users.noreply.github.com> Date: Sat, 1 Feb 2025 16:47:08 +0100 Subject: [PATCH] fix: Media-control pausing of media (#213) Co-authored-by: PartyDonut --- lib/wrappers/media_control_wrapper.dart | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/lib/wrappers/media_control_wrapper.dart b/lib/wrappers/media_control_wrapper.dart index c93a4cb..f266fa0 100644 --- a/lib/wrappers/media_control_wrapper.dart +++ b/lib/wrappers/media_control_wrapper.dart @@ -49,7 +49,7 @@ class MediaControlsWrapper extends BaseAudioHandler { bool initMediaControls = false; Future init() async { - if (!initMediaControls && !kDebugMode) { + if (!initMediaControls) { await AudioService.init( builder: () => this, config: const AudioServiceConfig( @@ -153,6 +153,20 @@ class MediaControlsWrapper extends BaseAudioHandler { })); } + @override + Future pause() async { + await _player?.pause(); + playbackState.add(playbackState.value.copyWith( + playing: false, + controls: [MediaControl.play], + )); + WakelockPlus.disable(); + final playerState = _player; + if (playerState != null) { + ref.read(playBackModel)?.updatePlaybackPosition(playerState.lastState.position, false, ref); + } + } + @override Future play() async { WakelockPlus.enable(); @@ -240,15 +254,18 @@ class MediaControlsWrapper extends BaseAudioHandler { Future playOrPause() async { await _player?.playOrPause(); + final playing = _player?.lastState.playing ?? false; playbackState.add(playbackState.value.copyWith( - playing: _player?.lastState.playing ?? false, - controls: [MediaControl.play], + playing: playing, + controls: [playing ? MediaControl.pause : MediaControl.play], )); - if (playbackState.value.playing) { + + if (playing) { WakelockPlus.enable(); } else { WakelockPlus.disable(); } + final playerState = _player; if (playerState != null) { ref