これは数年前に投稿されたものですが、まだ解決されていません。たとえば 150% の音量でビデオを再生するものを作ろうと決心しましたが、HTML5 の音量メソッドでは 1 より大きい値を指定するとエラーが発生します。https://www.w3schools.com/tags/av_prop_volume.asp
これが私のコードです:
javascript:(function(){document.getElementsByTagName('video')[0].volume = 1.5;}());
0.5 は動作しますが、1.5 は動作しません。ある回答では、次のエラーが発生すると述べられています。
Uncaught DOMException: Failed to set the 'volume' property on 'HTMLMediaElement': The volume provided (2) is outside the range [0, 1].
とにかく、この例外を利用して、[0,1]の範囲を超えて実行することはできますか?
ベストアンサー1
ビデオの音量は 0 ~ 1 のパーセンテージで表され、100% を超えることはできません。
これを実現できる唯一の方法は、ビデオ プレーヤーからのオーディオを Web Audio API にルーティングし、そこで増幅することです。
https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createMediaElementSource
// create an audio context and hook up the video element as the source
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
var source = audioCtx.createMediaElementSource(myVideoElement);
// create a gain node
var gainNode = audioCtx.createGain();
gainNode.gain.value = 2; // double the volume
source.connect(gainNode);
// connect the gain node to an output destination
gainNode.connect(audioCtx.destination);
ビデオからオーディオ コンテキストを取得し、ゲイン ノードに通してオーディオの音量を上げたり、リバーブなどのオーディオ効果を適用したりできます。ゲイン ノードのゲインを上げすぎないように注意してください。そうしないと、すでにマスタリングされているオーディオがクリッピングし始めます。
最後に、新しいオーディオを出力できるように、ゲイン ノードをオーディオの宛先に接続する必要があります。