我正在尝试过滤信号,然后使用Tone.js / Web-Audio API分析过滤后的信号的值。
我期望得到滤波后的信号的值,但是我只会得到-Infinity,这意味着节点之间的连接是错误的。我做了一个小的fiddle来演示这一点,但是在我的用例中,我不想将此节点发送到上下文的目的地-我只想分析它,而不是听见它。
osc.connect(filter)
filter.connect(gainNode)
gainNode.connect(meter)
console.log(meter.getLevel())
经过一番挖掘,我发现我需要使用scriptProcessorNode-显然不再建议使用-因此请查看Audio Worklet Nodes
我想您已经在Chrome中测试了该代码,因为Chrome存在问题,导致其在连接到目标之前无法处理任何内容。使用Tone.js时,这意味着您需要在链的末尾调用.toMaster()
。我更新了您的小提琴以使其正常工作:https://jsfiddle.net/8f7abzoL/。
在Firefox中不需要调用.toMaster()
,因此以下内容在Firefox中也适用:https://jsfiddle.net/yrjgfdtz/。