From d25b62f7d9b57b4bc016d0498fa9ee9e31287e71 Mon Sep 17 00:00:00 2001 From: jeffvli Date: Fri, 14 Nov 2025 18:22:35 -0800 Subject: [PATCH] set queue on mpv initialization if available --- .../audio-player/engine/mpv-player-engine.tsx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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 4496619e2..d7cd398ed 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 @@ -49,6 +49,7 @@ export const MpvPlayerEngine = (props: MpvPlayerEngineProps) => { const [previousCurrentSrc, setPreviousCurrentSrc] = useState(currentSrc); const progressIntervalRef = useRef(null); + const isInitializedRef = useRef(false); const mpvExtraParameters = useSettingsStore((store) => store.playback.mpvExtraParameters); const mpvProperties = useSettingsStore((store) => store.playback.mpvProperties); @@ -72,6 +73,9 @@ export const MpvPlayerEngine = (props: MpvPlayerEngineProps) => { }); mpvPlayer?.volume(properties.volume); + isInitializedRef.current = true; + } else { + isInitializedRef.current = true; } }; @@ -80,9 +84,22 @@ export const MpvPlayerEngine = (props: MpvPlayerEngineProps) => { return () => { mpvPlayer?.stop(); mpvPlayer?.cleanup(); + isInitializedRef.current = false; }; }, [mpvExtraParameters, mpvProperties]); + // Populate mpv queue after initialization + useEffect(() => { + if (!mpvPlayer || !isInitializedRef.current) { + return; + } + + if (currentSrc) { + const shouldPause = playerStatus !== PlayerStatus.PLAYING; + mpvPlayer.setQueue(currentSrc, nextSrc, shouldPause); + } + }, [currentSrc, nextSrc, playerStatus]); + // Update volume useEffect(() => { if (!mpvPlayer) {