finishing touches
This commit is contained in:
parent
bac269411a
commit
01bb7f5150
1 changed files with 25 additions and 24 deletions
|
@ -1,41 +1,42 @@
|
||||||
|
/*
|
||||||
|
* SPDX-License-Identifier: GPL-3.0
|
||||||
|
* Vesktop, a desktop app aiming to give you a snappier Discord Experience
|
||||||
|
* Copyright (c) 2023 Vendicated and Vencord contributors
|
||||||
|
*/
|
||||||
|
|
||||||
import { isLinux } from "../utils";
|
import { isLinux } from "../utils";
|
||||||
|
|
||||||
if (isLinux) {
|
if (isLinux) {
|
||||||
const original = navigator.mediaDevices.getDisplayMedia;
|
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);
|
|
||||||
return audioDevice;
|
|
||||||
}
|
|
||||||
|
|
||||||
var id: string|undefined;
|
async function getVirtmic() {
|
||||||
try {
|
try {
|
||||||
let vesktopAudioSink = await getAudioDevice('vesktop-virtmic');
|
const devices = await navigator.mediaDevices.enumerateDevices();
|
||||||
id = vesktopAudioSink?.deviceId;
|
const audioDevice = devices.find(({ label }) => label === "vencord-virtmic");
|
||||||
|
return audioDevice?.deviceId;
|
||||||
|
} catch (error) {
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
catch (error) {
|
}
|
||||||
id = 'error';
|
|
||||||
}
|
navigator.mediaDevices.getDisplayMedia = async function () {
|
||||||
return id;
|
|
||||||
};
|
|
||||||
navigator.mediaDevices.getDisplayMedia = async function() {
|
|
||||||
const id = await getVirtmic();
|
|
||||||
const stream = await original.apply(this);
|
const stream = await original.apply(this);
|
||||||
if (id !== 'error'){
|
const id = await getVirtmic();
|
||||||
const audio = await navigator.mediaDevices.getUserMedia({
|
|
||||||
audio: {
|
if (id) {
|
||||||
|
const audio = await navigator.mediaDevices.getUserMedia({
|
||||||
|
audio: {
|
||||||
deviceId: {
|
deviceId: {
|
||||||
exact: id
|
exact: id
|
||||||
},
|
},
|
||||||
autoGainControl: false,
|
autoGainControl: false,
|
||||||
echoCancellation: false,
|
echoCancellation: false,
|
||||||
noiseSuppression: false
|
noiseSuppression: false
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
audio.getAudioTracks().forEach(t => stream.addTrack(t));
|
audio.getAudioTracks().forEach(t => stream.addTrack(t));
|
||||||
};
|
}
|
||||||
|
|
||||||
return stream;
|
return stream;
|
||||||
};
|
};
|
||||||
};
|
}
|
||||||
|
|
Reference in a new issue