This repository has been archived on 2025-03-16. You can view files and clone it, but cannot push or open issues or pull requests.
project-client/src/renderer/patches/screenShareAudio.ts
2023-09-26 20:04:32 -04:00

39 lines
No EOL
1.1 KiB
TypeScript

const original = navigator.mediaDevices.getDisplayMedia;
async function getVirtmic() {
const getAudioDevice = async (deviceName: string|undefined) => {;
let devices = await navigator.mediaDevices.enumerateDevices();
let audioDevice = devices.find(({
label
}) => label === deviceName);
console.log(audioDevice);
return audioDevice;
}
var id: string|undefined;
try {
let myDiscordAudioSink = await getAudioDevice('virtmic');
id = myDiscordAudioSink?.deviceId;
console.log(id, "connected");
}
catch (error) {
id = 'default';
console.log("virtmic failed to connect");
}
return id;
};
navigator.mediaDevices.getDisplayMedia = async function() {
const id = await getVirtmic();
const stream = await original.apply(this);
const audio = await navigator.mediaDevices.getUserMedia({
audio: {
deviceId: {
exact: id
},
autoGainControl: false,
echoCancellation: false,
noiseSuppression: false
} });
audio.getAudioTracks().forEach(t => stream.addTrack(t));
return stream;
}