fix playback controls being called multiple times on media key input

This commit is contained in:
jeffvli
2025-10-13 04:33:11 -07:00
parent 68476deb98
commit 1b8661d566
2 changed files with 37 additions and 21 deletions
@@ -1,6 +1,5 @@
import { useEffect } from 'react';
import { useCenterControls } from '/@/renderer/features/player/hooks/use-center-controls';
import {
useCurrentSong,
useCurrentStatus,
@@ -9,26 +8,31 @@ import {
} from '/@/renderer/store';
import { PlayerStatus } from '/@/shared/types/types';
export const useMediaSession = (playersRef: { player1: any; player2: any }) => {
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;
}) => {
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;