问题描述
我正在尝试创建一个Analyzer节点以从麦克风获取信号,并能够使用接收到的输入来创建图形.但是我不想让扬声器仍然接收到麦克风信号.
Im trying to create an Analyser node to get the signal from a microphone, and be able to create a graphic with the received input. But I dont want to the speakers to still recive the microphone signal.
源(麦克风)->分析器->目标(?)
Source (microphone) -> Analyser -> Destination(?)
目的地始终是说话者...我可以将目的地放在空白处或类似地方,并且仍然能够分析麦克风吗?
The destination is always the speakers... Can I put the destination to a void or similar, and be able to still analyze the microphone?
我尝试使用Volumne(增益节点),但最终影响了分析仪.
I tried to play with the Volumne (gain node) but that affects the analyser in the end.
总之:我需要能够分析来自麦克风的输入,但要使扬声器上的信号静音.
In summary: I need to be able to analyze an input from the microphone but mute that signal on the speakers.
这是我在做什么.
analyser = context.createAnalyser();
analyser.smoothingTimeConstant = 0.4;
analyser.fftSize = 64;
microphone.connect(analyser)
analyser.connect(context.destination);
这工作正常...但是我正在扬声器上听到声音.如果我问例如:
This is working fine... but Im getting the sound on the speakers.If I ask for example:
var data = new Uint8Array(analyzer.frequencyBinCount);
analyzer.getByteFrequencyData(data)
然后数据将包含来自麦克风的响应.
Then data will contain the reponse from microphone.
但是如果我这样增加收益
But if I add gain after like this
volume.gain.value = 0;
microphone.connect(analyser)
analyser.connect(volume);
volume.connect(context.destination);
或者我没有连接到 context.destination ,那么数据数组将全部为0(不是来自麦克风的响应)
or I do not make the connect to context.destination, then the data array will be all 0 (not reponse from microphone)
推荐答案
实际上,您甚至不需要连接分析器.它应该在不连接到目的地的情况下进行处理.
Actually, you don't even need to connect the analyser. It should process without being connected to the destination.
这篇关于使扬声器中的麦克风静音,但仍然可以使用Web Audio Api分析(createAnalyser)吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!