VideoJS HTML5 Video JS 如何将音量提高到最大值以上?

Has*_*sen 3 html javascript video html5-video video.js

可能没有解决方案,但我想无论如何我都会询问。有时视频真的很安静,如果我相应地调高计算机的音量,那么其他声音就会变得太大声。能够将音量提高到最大值以上会很好。

我在 google 上进行了搜索,实际上什么也没找到,甚至根本没有与 videojs 相关的结果。我的 Mac 的某些视频几乎处于最大音量以很好地听到视频的语音,因此以较低的音量开始所有内容并进行相应调整是不可行的。

我试过:

   var video = document.getElementById("Video1");
   video.volume = 1.0;
Run Code Online (Sandbox Code Playgroud)

并将其设置为 1.0 以上的任何内容,但视频根本无法打开:

   var video = document.getElementById("Video1");
   video.volume = 1.4;  /// 2.0 etc
Run Code Online (Sandbox Code Playgroud)

yur*_*636 7

基于:http : //cwestblog.com/2017/08/17/html5-getting-more-volume-from-the-web-audio-api/

您可以使用 Web Audio API 调整增益:

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;
}

amplifyMedia(document.getElementById('myVideo'), 1.4);
Run Code Online (Sandbox Code Playgroud)

您传递给函数的乘数与视频音量处于同一级别,即 100% 音量,但在这种情况下,您可以传递更高的数字。


无法发布任何工作演示或 JSFiddle,因为 Web Audio API 需要来自同一来源(或 CORS 兼容)的源。可以在控制台看到错误:https : //jsfiddle.net/yuriy636/41vrx1z7/1/

由于 CORS 访问限制,MediaElementAudioSource 输出零

但是我已经在本地进行了测试,并且可以按预期工作。