diff --git a/plugins/audio-compressor/front.js b/plugins/audio-compressor/front.js new file mode 100644 index 0000000000..4f41a4d7e2 --- /dev/null +++ b/plugins/audio-compressor/front.js @@ -0,0 +1,25 @@ +const applyCompressor = () => { + const videoElement = document.querySelector("video"); + + // If video element is not loaded yet try again + if(videoElement === null) { + setTimeout(applyCompressor, 500); + return; + } + + const audioContext = new AudioContext(); + + let compressor = audioContext.createDynamicsCompressor(); + compressor.threshold.value = -50; + compressor.ratio.value = 12; + compressor.knee.value = 40; + compressor.attack.value = 0; + compressor.release.value = 0.25; + + const source = audioContext.createMediaElementSource(videoElement); + + source.connect(compressor); + compressor.connect(audioContext.destination); +}; + +module.exports = applyCompressor; \ No newline at end of file