---
title: "AudioWorklet 实战:低延迟音频处理与 ScriptProcessor 对比"
keywords:
- AudioWorklet
- ScriptProcessor
- 低延迟
- 实时处理
- Web Audio
- 音频管线
description: "比较 AudioWorklet 与已弃用的 ScriptProcessorNode,在延迟、稳定性与线程模型上的差异,给出实时音频处理的工程实践与参考。"
categories:
- 文章资讯
- 技术教程
---
概述
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/实时处理一致。

发表评论 取消回复