From 22b798812e2a739472b9af6afc3d4379ff1d8bbf Mon Sep 17 00:00:00 2001 From: jeffvli Date: Mon, 13 Oct 2025 11:38:19 -0700 Subject: [PATCH] Revert "fix playback controls being called multiple times on media key input" This reverts commit 1b8661d566403d830395a815ccaddd0eed788a28. --- .../player/components/center-controls.tsx | 24 ++++--------- .../player/hooks/use-media-session.ts | 34 ++++++++----------- 2 files changed, 21 insertions(+), 37 deletions(-) diff --git a/src/renderer/features/player/components/center-controls.tsx b/src/renderer/features/player/components/center-controls.tsx index 039848e7..08ffce67 100644 --- a/src/renderer/features/player/components/center-controls.tsx +++ b/src/renderer/features/player/components/center-controls.tsx @@ -57,7 +57,6 @@ export const CenterControls = ({ playersRef }: CenterControlsProps) => { handlePlay, handlePlayPause, handlePrevTrack, - handleSeekSlider, handleSkipBackward, handleSkipForward, handleStop, @@ -85,16 +84,7 @@ export const CenterControls = ({ playersRef }: CenterControlsProps) => { ], ]); - useMediaSession({ - handleNextTrack, - handlePause, - handlePlay, - handlePrevTrack, - handleSeekSlider, - handleSkipBackward, - handleSkipForward, - handleStop, - }); + useMediaSession(playersRef); return ( <> @@ -237,24 +227,22 @@ export const CenterControls = ({ playersRef }: CenterControlsProps) => { /> - + ); }; const PlayerSeekSlider = ({ - handleSeekSlider, player1, player2, + playersRef, }: { - handleSeekSlider: (e: any | number) => void; player1: any; player2: any; + playersRef: any; }) => { + const { handleSeekSlider } = useCenterControls({ playersRef }); + const player = useCurrentPlayer(); const playbackType = usePlaybackType(); const setCurrentTime = useSetCurrentTime(); diff --git a/src/renderer/features/player/hooks/use-media-session.ts b/src/renderer/features/player/hooks/use-media-session.ts index 94fba8ea..aa157eb4 100644 --- a/src/renderer/features/player/hooks/use-media-session.ts +++ b/src/renderer/features/player/hooks/use-media-session.ts @@ -1,5 +1,6 @@ import { useEffect } from 'react'; +import { useCenterControls } from '/@/renderer/features/player/hooks/use-center-controls'; import { useCurrentSong, useCurrentStatus, @@ -8,31 +9,26 @@ import { } from '/@/renderer/store'; import { PlayerStatus } from '/@/shared/types/types'; -export const useMediaSession = ({ - handleNextTrack, - handlePause, - handlePlay, - handlePrevTrack, - handleSeekSlider, - handleSkipBackward, - handleSkipForward, - handleStop, -}: { - handleNextTrack: () => void; - handlePause: () => void; - handlePlay: () => void; - handlePrevTrack: () => void; - handleSeekSlider: (e: any | number) => void; - handleSkipBackward: (seconds: number) => void; - handleSkipForward: (seconds: number) => void; - handleStop: () => void; -}) => { +export const useMediaSession = (playersRef: { player1: any; player2: any }) => { const { mediaSession: mediaSessionEnabled } = usePlaybackSettings(); const playerStatus = useCurrentStatus(); const currentSong = useCurrentSong(); const mediaSession = navigator.mediaSession; const skip = useSettingsStore((state) => state.general.skipButtons); + const { + handleNextTrack, + handlePause, + handlePlay, + handlePrevTrack, + handleSeekSlider, + handleSkipBackward, + handleSkipForward, + handleStop, + } = useCenterControls({ + playersRef, + }); + useEffect(() => { if (!mediaSessionEnabled || !mediaSession) { return;