我正在尝试使用网络音频 API 构建模块化合成器。我想不通的主要是如何做“门”,或者换句话说如何让音频信号触发 js 函数或事件。
例如,假设我有一个低频方波,我希望每当方波的振幅超过某个值时触发一个函数。创建这种监听器的最佳流程是什么?
最佳答案
网络音频中没有普通的回调。您可以创建的唯一“监听器”是使用 ScriptProcessorNode
的监听器。
连接要查找方波幅度的节点。定义一个 scriptNode.onaudioprocess
函数,它会在每次通过您构建的音频网络时被调用。
然后您可以使用 audioProcessingEvent.inputBuffer
和 inputDataMic = inputBuffer.getChannelData(0)
获取输入(假设您允许自己访问导致回调的事件被调用)。
这些调用使您能够访问传入的实际数据值。您必须在每个音频帧中查找方波。您可能会发现分析器节点有助于识别在方波频率附近具有功率的帧。
关于javascript - 音频信号如何触发 Web Audio API 的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30959196/