Слайдер громкости HTML5 перейти на 200%
Я ищу способ увеличить громкость на 100%. У меня есть несколько видео, где громкость в html5, доведенная до 100%, довольно низкая. Есть ли что-нибудь, чтобы сделать максимальный объем 200% или определить уровень децибела, который равен 100%?
2 ответа
Это правда, что вы не можете установить фактическое свойство громкости видео-тега или аудио-тега выше 1, но вы можете использовать API-интерфейс Web Audio, чтобы громкость была в два раза выше, чем обычно, эффективно удваивая громкость:
function amplifyMedia(mediaElem, multiplier) {
var context = new (window.AudioContext || window.webkitAudioContext),
result = {
context: context,
source: context.createMediaElementSource(mediaElem),
gain: context.createGain(),
media: mediaElem,
amplify: function(multiplier) { result.gain.gain.value = multiplier; },
getAmpLevel: function() { return result.gain.gain.value; }
};
result.source.connect(result.gain);
result.gain.connect(context.destination);
result.amplify(multiplier);
return result;
}
Функция должна быть довольно простой в использовании, но эта страница также дает более подробную информацию: http://cwestblog.com/2017/08/17/html5-getting-more-volume-from-the-web-audio-api/
Свойство громкости видео html5 может быть установлено только от 0 до 1 (то есть от 0 до 100 процентов):
http://www.w3schools.com/tags/av_prop_volume.asp
Установка вне этого диапазона приведет к ошибке. Например:
document.getElementsByTagName("video")[0].volume = 2;
результаты в
Uncaught DOMException: Failed to set the 'volume' property on 'HTMLMediaElement': The volume provided (2) is outside the range [0, 1].