概述
ScriptProcessorNode 在主线程执行,易受阻塞与延迟波动影响,已被弃用。AudioWorklet 在专用线程执行图形与交互之外的音频处理,延迟更低更稳定,适合实时合成与效果处理。
管线与用法
- 注册处理器:在
AudioWorklet中通过audioContext.audioWorklet.addModule('processor.js')注册;在模块中定义AudioWorkletProcessor并通过registerProcessor暴露[参考1]。 - 创建节点:
new AudioWorkletNode(audioContext, 'processor-name');通过port与主线程通信;在process()中执行每块样本的处理。
工程建议
- 控制块大小与采样率;避免在处理器中执行耗时操作与分配;使用参数与消息传递调整效果。
- 错误与兼容:在不支持的环境回退至轻量处理或 WebAssembly DSP;避免使用已弃用的 ScriptProcessor。
参考与验证
- [参考1]MDN 中文:Web Audio API 与 AudioWorklet 概览与用法:https://developer.mozilla.org/zh-CN/docs/Web/API/AudioWorklet
- [参考2]web.dev:AudioWorklet 实时处理与延迟优势与实践:https://web.dev/articles/audio-worklet
关键词校验
关键词与 AudioWorklet/实时处理一致。

发表评论 取消回复