音频信号如何触发 Web Audio API?

How can an audio signal trigger functions with the Web Audio API?

我正在尝试使用网络音频构建模块化合成器 api。我想不通的主要是如何做 "gates",或者换句话说如何让音频信号触发 js 函数或事件。

例如,假设我有一个低频方波,我希望每当方波的幅度超过某个值时触发一个函数。创建这种侦听器的最佳流程是什么?

网络音频中没有普通的回调。您可以创建的唯一 "listener" 是使用 ScriptProcessorNode 的一个。

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

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

这些调用使您能够访问传入的实际数据值。您必须在每个音频帧中查找方波。您可能会发现分析器节点有助于识别在方波频率附近具有功率的帧。