ScriptProcessorNode 内部结构

Posted

技术标签:

【中文标题】ScriptProcessorNode 内部结构【英文标题】:ScriptProcessorNode internals 【发布时间】:2016-04-13 21:33:13 【问题描述】:

我有一个关于 ScriptProcessorNode 内部操作的问题。在我们的 javascript 处理 onaudioprocess 事件期间,ScriptProcessorNode 本身是否维护一些内部缓冲区以继续捕获和播放音频?如果它有内部缓冲空间,有多大?还有,onaudioprocess 事件可以由用户事件触发吗?

【问题讨论】:

【参考方案1】:

音频系统维护这些缓冲区,是的,因为它必须从音频线程异步传输音频(并返回)。它不会阻塞主音频系统的处理,但如果您在主线程 onaudioprocess 响应不够快,它就会出现故障。

缓冲区是……双缓冲的,我想?我不记得了,确切地说。您传递给 ScriptProcessorNode 的块大小决定了它们的大小。

最后,您不能通过用户事件触发 onaudioprocess(我的意思是,您可以出于测试目的,我猜) - 它旨在在音频系统需要来自脚本处理器节点的更多数据时触发。

【讨论】:

如果它不能被用户事件触发,你可以在它们到达时向它发送更多数据。如果在 onaudioprocess 事件发生时一个缓冲区的数据不可用,我们应该在事件处理中等待数据还是不带数据返回并等待下一个事件。 做了更多测试。看起来当 onaudioprocess 事件触发时,您必须填充缓冲区。 ScriptProcessorNode 似乎以缓冲区大小的固定间隔触发。

以上是关于ScriptProcessorNode 内部结构的主要内容,如果未能解决你的问题,请参考以下文章

ScriptProcessorNode 已弃用。改用 AudioWorkletNode

JavaScript - WebAudio API ScriptProcessorNode InputBuffer getChannelData 精度

Audio ScriptProcessorNode outputBuffer 在 Chrome 中只包含 0

如何在pyspark /中的结构内爆炸结构中的内部数组

简述ic卡芯片内部结构,工作原理及应用。

简述ic卡芯片内部结构,工作原理及应用。