我在JavaScript中有以下AudioContext()聲音對象。
它的體積是100%。我想以10%的體積播放它(其中音量= 0.1)。
如何將其體積縮小至10%?如何控制(音頻緩衝區)AudioContext()的音量?
const aCtx = new AudioContext();
let source = aCtx.createBufferSource();
let buf;
fetch('https://dl.dropboxusercontent.com/s/knpo4d2yooe2u4h/tank_driven.wav') // can be XHR as well
.then(resp => resp.arrayBuffer())
.then(buf => aCtx.decodeAudioData(buf)) // can be callback as well
.then(decoded => {
source.buffer = buf = decoded;
source.loop = true;
source.connect(aCtx.destination);
check.disabled = false;
});
check.onchange = e => {
if (check.checked) {
source.start(0); // start our bufferSource
} else {
source.stop(0); // this destroys the buffer source
source = aCtx.createBufferSource(); // so we need to create a new one
source.buffer = buf;
source.loop = true;
source.connect(aCtx.destination);
}
};
<label>Start Playing</label>
<input type="checkbox" id="check" disabled><br>
<br>Its volume is 100%. Please help me to reduce it to 10%.
所以我認識[我的代碼](http://stackoverflow.com/a/42970609/3702797 ),如果你完整地閱讀了答案,你會發現在第二個片段中我使用了[gainNode](https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createGain),這會給你對輸出音量的控制。 – Kaiido