From 5edebd9070b0a8b8b2392513f560eca0dc1d9dfc Mon Sep 17 00:00:00 2001 From: Telepathic Walrus Date: Mon, 30 Jan 2023 18:47:38 +0000 Subject: [PATCH] Use normalization value from server --- src/plugins/htmlAudioPlayer/plugin.js | 36 ++++++++++++++++++--------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/src/plugins/htmlAudioPlayer/plugin.js b/src/plugins/htmlAudioPlayer/plugin.js index 627ab5d6ec..45142b8735 100644 --- a/src/plugins/htmlAudioPlayer/plugin.js +++ b/src/plugins/htmlAudioPlayer/plugin.js @@ -97,6 +97,7 @@ class HtmlAudioPlayer { self._currentTime = null; const elem = createMediaElement(); + return setCurrentSrc(elem, options); }; @@ -107,25 +108,21 @@ class HtmlAudioPlayer { let val = options.url; console.debug('playing url: ' + val); + const dbGain = -18 - options.item.Normalization; + console.debug(options.item); + self.gainNode.gain.value = Math.pow(10, (dbGain/20)); + + + console.debug('gain:' + self.gainNode.gain.value); + + // Convert to seconds const seconds = (options.playerStartPositionTicks || 0) / 10000000; if (seconds) { val += '#t=' + seconds; } - const audioCtx = new AudioContext(); - const myAudio = document.querySelector('.mediaPlayerAudio'); - const source = audioCtx.createMediaElementSource(myAudio); - - const gainNode = audioCtx.createGain(); - const dbGain = -1; - console.debug(options.item); - console.debug("before" + dbGain); - gainNode.gain.value = Math.pow(10, (dbGain/20)); - source.connect(gainNode); - gainNode.connect(audioCtx.destination); - console.debug('gain:' + gainNode.gain.value); htmlMediaHelper.destroyHlsPlayer(self); @@ -255,9 +252,24 @@ class HtmlAudioPlayer { self._mediaElement = elem; + addGainElement(elem); + return elem; } + function addGainElement(elem) { + const audioCtx = new AudioContext(); + + const source = audioCtx.createMediaElementSource(elem); + + const gainNode = audioCtx.createGain(); + + source.connect(gainNode); + gainNode.connect(audioCtx.destination); + + self.gainNode = gainNode + } + function onEnded() { htmlMediaHelper.onEndedInternal(self, this, onError); }