音频信号触发器如何与Web Audio API配合使用?

问题描述:

我试图建立一个模块化的合成器,使用网络音频API。我无法弄清楚的主要问题是如何做“门”,换句话说,如何让音频信号触发js功能或事件。例如,假设我有一个低频方波,并且每次方波的振幅超过一定值时我都要触发一个函数。创建这种倾听者的最佳过程是什么?音频信号触发器如何与Web Audio API配合使用?

+0

我会实现一个分析器节点并检查每个requestanimationframe调用。不知道这是否是最好的方法。 – Cracker0dks

Web Audio中没有普通的回调。您可以创建的唯一“侦听器”是使用ScriptProcessorNode的侦听器。

连接要查找方波大小的节点。定义一个scriptNode.onaudioprocess函数,并在每次通过您构建的音频网络时调用它。

然后,您可以使用audioProcessingEvent.inputBufferinputDataMic = inputBuffer.getChannelData(0)(假设您允许自己访问导致您的回调被调用的事件)来获取输入。

这些调用为您提供访问实际数据值的权限。您必须在每个音频帧中查找您的方波。您可能会发现一个分析器节点有助于识别在方波频率周围具有功率的帧。