From 1bc1f619ff23643495e8cf9b8588620992e5dd8c Mon Sep 17 00:00:00 2001 From: jeffvli Date: Sun, 14 Dec 2025 02:50:20 -0800 Subject: [PATCH] fix mpv exiting on radio stop --- .../features/radio/hooks/use-radio-player.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/renderer/features/radio/hooks/use-radio-player.ts b/src/renderer/features/radio/hooks/use-radio-player.ts index 997a84071..27b167baa 100644 --- a/src/renderer/features/radio/hooks/use-radio-player.ts +++ b/src/renderer/features/radio/hooks/use-radio-player.ts @@ -10,6 +10,7 @@ import { usePlayerMuted, usePlayerStoreBase, usePlayerVolume, + useSettingsStore, } from '/@/renderer/store'; import { toast } from '/@/shared/components/toast/toast'; import { PlayerStatus, PlayerType } from '/@/shared/types/types'; @@ -68,13 +69,22 @@ export const useRadioStore = createWithEqualityFn((set) => ({ setMetadata: (metadata) => set({ metadata }), setStationName: (stationName) => set({ stationName }), stop: () => { + const playbackType = useSettingsStore.getState().playback.type; + set({ currentStreamUrl: null, isPlaying: false, metadata: null, stationName: null, }); - usePlayerStoreBase.getState().mediaStop(); + + // When stopping radio with mpv, just pause instead of calling mediaStop + // This prevents mpv from quitting + if (playbackType === PlayerType.LOCAL && mpvPlayer) { + mpvPlayer.pause(); + } else { + usePlayerStoreBase.getState().mediaStop(); + } }, }, currentStreamUrl: null, @@ -135,7 +145,7 @@ export const useRadioAudioInstance = () => { if (currentStreamUrl) { mpvPlayer.setQueue(currentStreamUrl, undefined, !isPlaying); } else { - mpvPlayer.setQueue(undefined, undefined, true); + mpvPlayer.pause(); } }, [ currentStreamUrl,