--- title: ConvolverNode slug: Web/API/ConvolverNode tags: - 音效 - 音频 translation_of: Web/API/ConvolverNode ---
{{APIRef("Web Audio API")}}
ConvolverNode
接口是一个对给定 {{domxref("AudioBuffer")}} 上执行线性卷积的 {{domxref("AudioNode")}},一般用来做音频混响效果。每一个 ConvolverNode
都会有一个输入值和输出值。
注意: 更多线性卷积理论的相关信息,请参阅Convolution article on Wikipedia.
Number of inputs | 1 |
---|---|
Number of outputs | 1 |
Channel count mode | "clamped-max" |
Channel count | 1 , 2 , or 4 |
Channel interpretation | "speakers" |
ConvolverNode
对象实例。继承其父级的属性, {{domxref("AudioNode")}}.
ConvolverNode
用来产生混响效果的单声道、立体声或四声道的音频缓冲器,包含了(可能是多声道)脉冲反应(IR)。buffer
的脉冲反应按等功率归一化进行缩放。没有具体的方法,从其父继承方法,{{domxref("AudioNode")}}.
下面的示例展示了 AudioContext 创建卷积节点的基础用法。
注意: 你需要找到一个脉冲反应来完成下面的示例。可查看 此处 的实例.
let audioCtx = new window.AudioContext(); async function createReverb() { let convolver = audioCtx.createConvolver(); // 从文件加载脉冲反应 let response = await fetch("path/to/impulse-response.wav"); let arraybuffer = await response.arrayBuffer(); convolver.buffer = await audioCtx.decodeAudioData(arraybuffer); return convolver; } ... let reverb = await createReverb(); // someOtherAudioNode -> reverb -> destination someOtherAudioNode.connect(reverb); reverb.connect(audioCtx.destination);
规范 | 状态 | 注释 |
---|---|---|
{{SpecName('Web Audio API', '#ConvolverNode', 'ConvolverNode')}} | {{Spec2('Web Audio API')}} |
{{Compat("api.ConvolverNode")}}