过滤音频信号,然后读取仪表而不将其发送给主设备

问题描述 投票:0回答:2

我正在尝试过滤信号,然后使用Tone.js / Web-Audio API分析过滤后的信号的值。

我期望得到滤波后的信号的值,但是我只会得到-Infinity,这意味着节点之间的连接是错误的。我做了一个小的fiddle来演示这一点,但是在我的用例中,我不想将此节点发送到上下文的目的地-我只想分析它,而不是听见它。

osc.connect(filter)
filter.connect(gainNode)
gainNode.connect(meter)
console.log(meter.getLevel())
web-audio-api tone.js
2个回答
0
投票

经过一番挖掘,我发现我需要使用scriptProcessorNode-显然不再建议使用-因此请查看Audio Worklet Nodes


0
投票

我想您已经在Chrome中测试了该代码,因为Chrome存在问题,导致其在连接到目标之前无法处理任何内容。使用Tone.js时,这意味着您需要在链的末尾调用.toMaster()。我更新了您的小提琴以使其正常工作:https://jsfiddle.net/8f7abzoL/

在Firefox中不需要调用.toMaster(),因此以下内容在Firefox中也适用:https://jsfiddle.net/yrjgfdtz/

© www.soinside.com 2019 - 2024. All rights reserved.