我尝试创建一个Analyzer节点以从麦克风获取信号,并能够使用接收到的输入创建图形。但我不想让扬声器仍然重新接收麦克风信号。
来源(麦克风) - >分析仪 - >目的地( )
目的地始终是扬声器...我可以将目的地放到空白处或类似地方,并且仍能分析麦克风吗?
我尝试使用Volumne(增益节点),但最终会影响分析仪。
总结:我需要能够分析来自麦克风的输入,但将扬声器上的信号静音。
编辑:这就是我正在做的事情。analyser = context.createAnalyser();
analyser.smoothingTimeConstant = 0.4;
analyser.fftSize = 64;
microphone.connect(analyser)
analyser.connect(context.destination);
这很好用......但是我在扬声器上听到了声音。 如果我问一个例子:
var data = new Uint8Array(analyzer.frequencyBinCount);
analyzer.getByteFrequencyData(data)
然后数据将包含来自麦克风的响应。
但如果我像这样增加收益
volume.gain.value = 0;
microphone.connect(analyser)
analyser.connect(volume);
volume.connect(context.destination);
或者我没有连接 context.destination ,那么数据数组将全部为0(不响应麦克风)
答案 0 :(得分:2)
在分析器节点之后添加一个增益节点,并将其值设置为0.所以..
var volume = context.createGain();
volume.gain.value = 0;
microphone.connect(analyser);
analyser.connect(volume);
volume.connect(context.destination);
答案 1 :(得分:2)
实际上,您甚至不需要连接分析仪。它应该在没有连接到目的地的情况下进行处理。