use apiLoaded event in audio-compressor plugin

This commit is contained in:
Araxeus
2021-10-26 20:56:09 +03:00
parent a47c906ab2
commit 6e94422b15

View File

@ -1,14 +1,6 @@
const applyCompressor = () => { 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(); const audioContext = new AudioContext();
let compressor = audioContext.createDynamicsCompressor(); let compressor = audioContext.createDynamicsCompressor();
compressor.threshold.value = -50; compressor.threshold.value = -50;
compressor.ratio.value = 12; compressor.ratio.value = 12;
@ -16,10 +8,12 @@ const applyCompressor = () => {
compressor.attack.value = 0; compressor.attack.value = 0;
compressor.release.value = 0.25; compressor.release.value = 0.25;
const source = audioContext.createMediaElementSource(videoElement); const source = audioContext.createMediaElementSource(document.querySelector("video"));
source.connect(compressor); source.connect(compressor);
compressor.connect(audioContext.destination); compressor.connect(audioContext.destination);
}; };
module.exports = applyCompressor; module.exports = () => document.addEventListener('apiLoaded', () => {
applyCompressor();
})