finishing touches

This commit is contained in:
Vendicated 2023-09-28 02:06:10 +02:00
parent bac269411a
commit 01bb7f5150
No known key found for this signature in database
GPG key ID: D66986BAF75ECF18

View file

@ -1,29 +1,29 @@
/*
* 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() { async function getVirtmic() {
const getAudioDevice = async (deviceName: string|undefined) => {; try {
let devices = await navigator.mediaDevices.enumerateDevices(); const devices = await navigator.mediaDevices.enumerateDevices();
let audioDevice = devices.find(({ const audioDevice = devices.find(({ label }) => label === "vencord-virtmic");
label return audioDevice?.deviceId;
}) => label === deviceName); } catch (error) {
return audioDevice; return null;
}
} }
var id: string|undefined; navigator.mediaDevices.getDisplayMedia = async function () {
try {
let vesktopAudioSink = await getAudioDevice('vesktop-virtmic');
id = vesktopAudioSink?.deviceId;
}
catch (error) {
id = 'error';
}
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();
if (id) {
const audio = await navigator.mediaDevices.getUserMedia({ const audio = await navigator.mediaDevices.getUserMedia({
audio: { audio: {
deviceId: { deviceId: {
@ -35,7 +35,8 @@ if (isLinux) {
} }
}); });
audio.getAudioTracks().forEach(t => stream.addTrack(t)); audio.getAudioTracks().forEach(t => stream.addTrack(t));
}; }
return stream; return stream;
}; };
}; }