diff --git a/src/plugins/volumeBooster/index.ts b/src/plugins/volumeBooster/index.ts index 02a955a80..490bf62c2 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;