我刚开始研究NaCl,希望能够进行音频浏览器扩展。文档中有一个正弦波演示,因此制作合成器似乎是微不足道的。
我很想知道是否可以在输出之前捕获浏览器音频流,以便可以应用实时效果。这可能吗?
答案 0 :(得分:4)
不仅可以。我做到了您创建一个ScriptProcessorNode,其onaudioprocess回调接受inputbuffer并通过postMessage将其传递给等待的NaCl模块。一旦NaCl模块完成处理,它就会通过postMessage将其发送回JavaScript。 ScriptProcessorNode必须输出一些内容,以便引入1帧延迟,ScriptProcessorNode复制从NaCl接收的最新处理输出。
Flow看起来像这样:
ScriptProcessorNode - > postMessage输入缓冲区到NaCl
ScriptProcessorNode - >将从NaCl接收的最新缓冲区复制到输出缓冲区。
NaCl - >接收音频样本缓冲区,处理它并将其发回。
如果您希望我在GitHub上发布代码或有任何疑问,请告诉我。
HTH, 约翰