From d10e649b63ec46a511cd70f684ac9a7fbfaf8f52 Mon Sep 17 00:00:00 2001 From: sadan4 <117494111+sadan4@users.noreply.github.com> Date: Wed, 4 Sep 2024 07:04:17 -0400 Subject: [PATCH] VolumeBooster: Fix playing sound in wrong output device (#2840) --- src/plugins/volumeBooster/index.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/plugins/volumeBooster/index.ts b/src/plugins/volumeBooster/index.ts index 02a955a8..490bf62c 100644 --- a/src/plugins/volumeBooster/index.ts +++ b/src/plugins/volumeBooster/index.ts @@ -39,7 +39,7 @@ interface StreamData { gainNode?: GainNode, id: string, levelNode: AudioWorkletNode, - sinkId: string, + sinkId: string | "default", stream: MediaStream, streamSourceNode?: MediaStreamAudioSourceNode, videoStreamId: string, @@ -128,6 +128,12 @@ export default definePlugin({ gain.connect(data.audioContext.destination); } + // @ts-expect-error + if (data.sinkId != null && data.sinkId !== data.audioContext.sinkId && "setSinkId" in AudioContext.prototype) { + // @ts-expect-error https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/setSinkId + data.audioContext.setSinkId(data.sinkId); + } + data.gainNode.gain.value = data._mute ? 0 : data._volume / 100;