前回 は単純に source と destination を繋いだだけでしたが、
今回は途中にgainを挟んでボリュームを変更してみます。
JavaScript
var request = new XMLHttpRequest(), audioCtx = new AudioContext(), gain = audioCtx.createGain(); // gainを追加 gain.connect(audioCtx.destination); // gainをdestinationに繋ぐ gain.gain.value = .5; / 音量を変更 request.onload = function () { audioCtx.decodeAudioData(this.response, function (evt) { var source = audioCtx.createBufferSource(); source.buffer = evt; source.connect(gain); // source を gain に繋ぐ source.loop = true; source.start(); }); }; request.open("GET", "http://jsrun.it/assets/Y/B/q/d/YBqdz.mp3", true); request.responseType = "arraybuffer"; request.send();
これで 前回 よりも音量が小さくなったはずです。