Get to know MDN better
此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
已弃用: 不再推荐使用该特性。虽然一些浏览器仍然支持它,但也许已从相关的 web 标准中移除,也许正准备移除或出于兼容性而保留。请尽量不要使用该特性,并更新现有的代码;参见本页面底部的兼容性表格以指导你作出决定。请注意,该特性随时可能无法正常工作。
AudioContext 接口的 createScriptProcessor() 方法创建一个 ScriptProcessorNode,用于直接使用 JavaScript 处理音频。
备注:此特性已被 AudioWorklet 和 AudioWorkletNode 接口替代。
以采样帧为单位的缓冲区大小。具体来讲,缓冲区大小必须是下面这些值当中的某一个:256、512、1024、2048、4096、8192、16384。如果未提供参数,或者参数为 0,则取当前环境最合适的缓冲区大小,取值为 2 的幂次方的一个常数(其在该结点的整个生命周期中都不变)。
该取值控制着 audioprocess 事件被分派的频率,以及每一次调用多少采样帧被处理。更小的 bufferSize 意味着更低的延迟。而更大的值则可以避免音频的中断和故障。推荐不要给定具体的缓冲区大小,让系统自己选一个好的值来平衡延迟和音频质量。
numberOfInputChannels整数,用于指定输入结点的声道的数量,默认值为 2 且最高可取 32。
numberOfOutputChannels整数,用于指定输出结点的声道的数量,默认值为 2 且最高可取 32。
警告:Webkit(版本 31)要求调用这个方法的时候必须传入一个有效的 bufferSize。
备注:同时将 numberOfInputChannels、numberOfOutputChannels 设置为零是无效的。
下面的示例展示了如何使用 ScriptProcessorNode 获取通过 AudioContext.decodeAudioData() 加载的音轨并对其进行处理,为输入音轨的每个音频样本添加一点白噪声,然后通过 AudioDestinationNode 进行播放。
对于每个通道和每个采样帧,脚本节点的 audioprocess 事件处理器都会使用相关的 audioProcessingEvent 来循环处理输入缓冲区的每个通道和每个通道中的每个样本,并添加少量白噪声,然后将结果设置为每种情况下的输出样本。
| Web Audio API # dom-baseaudiocontext-createscriptprocessor |
启用 JavaScript 以查看此浏览器兼容性表。