From 1ab90124467707bc6934192796cb5e373d74e664 Mon Sep 17 00:00:00 2001 From: jeffvli Date: Fri, 14 Nov 2025 18:26:34 -0800 Subject: [PATCH] fix mpv queue initialization running multiple times --- .../player/audio-player/engine/mpv-player-engine.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/renderer/features/player/audio-player/engine/mpv-player-engine.tsx b/src/renderer/features/player/audio-player/engine/mpv-player-engine.tsx index d7cd398ed..38a1806a7 100644 --- a/src/renderer/features/player/audio-player/engine/mpv-player-engine.tsx +++ b/src/renderer/features/player/audio-player/engine/mpv-player-engine.tsx @@ -50,6 +50,7 @@ export const MpvPlayerEngine = (props: MpvPlayerEngineProps) => { const progressIntervalRef = useRef(null); const isInitializedRef = useRef(false); + const hasPopulatedQueueRef = useRef(false); const mpvExtraParameters = useSettingsStore((store) => store.playback.mpvExtraParameters); const mpvProperties = useSettingsStore((store) => store.playback.mpvProperties); @@ -85,20 +86,21 @@ export const MpvPlayerEngine = (props: MpvPlayerEngineProps) => { mpvPlayer?.stop(); mpvPlayer?.cleanup(); isInitializedRef.current = false; + hasPopulatedQueueRef.current = false; }; }, [mpvExtraParameters, mpvProperties]); // Populate mpv queue after initialization useEffect(() => { - if (!mpvPlayer || !isInitializedRef.current) { + if (!mpvPlayer || !isInitializedRef.current || hasPopulatedQueueRef.current) { return; } if (currentSrc) { - const shouldPause = playerStatus !== PlayerStatus.PLAYING; - mpvPlayer.setQueue(currentSrc, nextSrc, shouldPause); + mpvPlayer.setQueue(currentSrc, nextSrc, true); + hasPopulatedQueueRef.current = true; } - }, [currentSrc, nextSrc, playerStatus]); + }, [currentSrc, nextSrc]); // Update volume useEffect(() => {