Enable stereo microphone input and set the highest bitrate for Discord Web.
当前为
// ==UserScript==
// @name Discord Web Stereo and High Bitratde
// @namespace http://tampermonkey.net/
// @version 0.7
// @description Enable stereo microphone input and set the highest bitrate for Discord Web.
// @match https://discord.com/*
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
// Search for the appropriate methods dynamically
const findAndHookMethods = () => {
const searchInterval = 5000;
const hookMethod = (object, methodName, hookFunction) => {
if (object && typeof object[methodName] === 'function') {
const originalMethod = object[methodName];
object[methodName] = function() {
hookFunction.apply(this, arguments);
return originalMethod.apply(this, arguments);
};
console.log(`Hooked ${methodName} on`, object);
return true;
}
return false;
};
const hookSetTransceiverEncodingParameters = () => {
const hookFunction = function(parameters) {
console.log('hookSetTransceiverEncodingParameters called with parameters:', parameters);
if (parameters && parameters.encodings) {
for (const encoding of parameters.encodings) {
encoding.maxBitrate = 1329600; // Set this to the desired bitrate (1329.60 kbps)
encoding.channels = 2; // Enable stereo
console.log('Updated encoding:', encoding);
}
}
};
let hooked = false;
const potentialObjects = [window, ...Object.values(window)];
for (const obj of potentialObjects) {
if (hookMethod(obj, 'setTransceiverEncodingParameters', hookFunction)) {
hooked = true;
break;
}
}
if (!hooked) {
console.error('setTransceiverEncodingParameters method not found. Retrying in 5 seconds.');
setTimeout(hookSetTransceiverEncodingParameters, searchInterval);
}
};
const hookSetTransportOptions = () => {
const hookFunction = function(options) {
console.log('hookSetTransportOptions called with options:', options);
if (options && options.audio && options.audio.transportOptions) {
options.audio.transportOptions.encodingParams = {
channels: 2 // Enable stereo
};
console.log('Updated audio transport options:', options.audio.transportOptions);
}
};
let hooked = false;
const potentialObjects = [window, ...Object.values(window)];
for (const obj of potentialObjects) {
if (hookMethod(obj, 'setTransportOptions', hookFunction)) {
hooked = true;
break;
}
}
if (!hooked) {
console.error('setTransportOptions method not found. Retrying in 5 seconds.');
setTimeout(hookSetTransportOptions, searchInterval);
}
};
// Initialize hooks
const init = () => {
console.log('Initializing hooks');
hookSetTransceiverEncodingParameters();
hookSetTransportOptions();
console.log('Hooks initialization attempted');
};
// Wait for the Discord Web app to fully load before initializing
window.addEventListener('load', init);
console.log('Event listener added for window load');
};
findAndHookMethods();
})();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址