add audio device selection for mpv

This commit is contained in:
jeffvli
2026-01-14 19:12:36 -08:00
parent d95204513f
commit 41054ed819
5 changed files with 132 additions and 23 deletions
@@ -56,7 +56,7 @@ export const MpvPlayerEngine = (props: MpvPlayerEngineProps) => {
const hasPopulatedQueueRef = useRef<boolean>(false);
const isMountedRef = useRef<boolean>(true);
const { transcode } = usePlaybackSettings();
const { audioDeviceId, transcode } = usePlaybackSettings();
const mpvExtraParameters = useSettingsStore((store) => store.playback.mpvExtraParameters);
const mpvProperties = useSettingsStore((store) => store.playback.mpvProperties);
const [reloadTrigger, setReloadTrigger] = useState(0);
@@ -106,8 +106,14 @@ export const MpvPlayerEngine = (props: MpvPlayerEngineProps) => {
volume: volume,
};
const extraParameters: string[] = [...mpvExtraParameters];
if (audioDeviceId) {
extraParameters.push(`--audio-device=${audioDeviceId}`);
}
await mpvPlayer?.initialize({
extraParameters: mpvExtraParameters,
extraParameters,
properties,
});
@@ -148,7 +154,7 @@ export const MpvPlayerEngine = (props: MpvPlayerEngineProps) => {
// update callbacks in usePlayerEvents.
// reloadTrigger is included to allow manual reload via MPV_RELOAD event.
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [mpvExtraParameters, mpvProperties, reloadTrigger]);
}, [mpvExtraParameters, mpvProperties, audioDeviceId, reloadTrigger]);
// Update volume
useEffect(() => {