卷积器节点

基线 广泛可用

此功能已经成熟,可以在许多设备和浏览器版本上运行。它自 2021 年 4 月.

报告反馈

ConvolverNode 接口是一个 AudioNode,它对给定的 AudioBuffer 执行线性卷积,通常用于实现混响效果。ConvolverNode 始终只有一个输入和一个输出。

EventTarget AudioNode ConvolverNode
注意:有关线性卷积背后理论的更多信息,请参阅 维基百科上的卷积文章 1
输入数量 1
输出数量 通道计数模式
"clamped-max" 通道计数
124 通道解释

构造函数

ConvolverNode()

"speakers"

实例属性

创建一个新的 ConvolverNode 对象实例。.

从其父类 AudioNode 继承属性

ConvolverNode.buffer

一个单声道、立体声或 4 通道的AudioBuffer,包含 ConvolverNode 用于创建混响效果的(可能为多通道的)冲激响应。

ConvolverNode.normalize

实例方法

一个布尔值,用于控制在设置 buffer 属性时是否通过等功率归一化对来自缓冲区的冲激响应进行缩放。.

卷积器节点示例

没有特定方法;从其父类 AudioNode 继承方法

以下示例展示了使用音频上下文创建卷积器节点的基本用法。

注意:您需要找到一个冲激响应才能完成以下示例。查看此 Codepen 以获取应用示例。
let audioCtx = new window.AudioContext();

async function createReverb() {
  let convolver = audioCtx.createConvolver();

  // load impulse response from file
  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);

规范

js
Web 音频 API
# 卷积器节点

浏览器兼容性

规范

另请参见