【发布时间】:2013-06-23 03:17:15
【问题描述】:
我正在使用 Web 音频 API 从声音文件中获取频率数据。基本上我已经实现了这个example中显示的代码我想添加它是一个gainNode,所以我可以在我的代码的任何地方控制音量,但是我所做的连接有问题,其他一切都很好.
音量部分是我对原始代码的唯一更改:
request.onload = function() {
context.decodeAudioData(
request.response,
function(buffer) {
if(!buffer) {
$('#info').text('Error decoding file data');
return;
}
sourceJs = context.createJavaScriptNode(2048);
sourceJs.buffer = buffer;
sourceJs.connect(context.destination);
analyser = context.createAnalyser();
analyser.smoothingTimeConstant = 0.6;
analyser.fftSize = 512;
source = context.createBufferSource();
source.buffer = buffer;
source.loop = true;
source.connect(analyser);
analyser.connect(sourceJs);
source.connect(context.destination);
////////////////////////////////////
//////////VOLUME////////////////////
gainNode = context.createGain();
source.connect(gainNode);
gainNode.connect(context.destination);
//////////////////////////////////////
sourceJs.onaudioprocess = function(e) {
array = new Uint8Array(analyser.frequencyBinCount);
analyser.getByteFrequencyData(array);
boost = 0;
for (var i = 0; i < array.length; i++) {
boost += array[i];
}
boost = boost / array.length;
};
// popup
//aca avisa cuando ya cargo el buffer
},
function(error) {
$('#info').text('Decoding error:' + error);
}
);
};
然后我用它来关闭音量但不工作:...gainNode.gain.value = 0;
【问题讨论】:
标签: api audio web web-audio-api