diff --git a/src/components/apphost.js b/src/components/apphost.js index c99d9c72ec..b92bb6faa0 100644 --- a/src/components/apphost.js +++ b/src/components/apphost.js @@ -272,7 +272,7 @@ const supportedFeatures = function () { features.push('fullscreenchange'); } - if (browser.tv || browser.xboxOne || browser.ps4 || browser.mobile) { + if (browser.tv || browser.xboxOne || browser.ps4 || browser.mobile || browser.ipad) { features.push('physicalvolumecontrol'); } diff --git a/src/plugins/htmlAudioPlayer/plugin.js b/src/plugins/htmlAudioPlayer/plugin.js index 34b573317d..131b8cdfee 100644 --- a/src/plugins/htmlAudioPlayer/plugin.js +++ b/src/plugins/htmlAudioPlayer/plugin.js @@ -125,8 +125,10 @@ class HtmlAudioPlayer { if (normalizationGain) { self.gainNode.gain.value = Math.pow(10, normalizationGain / 20); + self.normalizationGain = self.gainNode.gain.value; } else { self.gainNode.gain.value = 1; + self.normalizationGain = 1; } console.debug('gain: ' + self.gainNode.gain.value); }).catch((err) => { @@ -311,6 +313,9 @@ class HtmlAudioPlayer { function onVolumeChange() { if (!self._isFadingOut) { htmlMediaHelper.saveVolume(this.volume); + if (browser.safari) { + self.gainNode.gain.value = this.volume * self.normalizationGain; + } Events.trigger(self, 'volumechange'); } }