BaseAudioContext:createConvolver() 方法

Baseline 已广泛支持

此特性已得到良好支持,可在多种设备和浏览器版本上使用。自 2021 年 4 月起,所有浏览器均已支持此特性。

BaseAudioContext 接口的 createConvolver() 方法会创建一个 ConvolverNode,该节点通常用于为音频应用混响效果。有关卷积的更多信息,请参阅 卷积的规范定义

注意: 推荐使用 ConvolverNode() 构造函数来创建 ConvolverNode;请参阅 创建 AudioNode

语法

js
createConvolver()

参数

无。

返回值

一个 ConvolverNode

示例

创建卷积节点

下面的示例展示了如何使用 AudioContext 创建一个卷积节点。您会创建一个包含音频样本的 AudioBuffer,该样本用作塑造卷积(称为脉冲响应)的氛围,并将其应用于卷积器。下面的示例使用了短促的音乐会现场人群采样,因此应用的混响效果非常深沉且具有回声感。

有关更完整的应用示例/信息,请查看我们的 Voice-change-O-matic 演示(下面摘录的代码请参阅 app.js)。

js
const audioCtx = new AudioContext();
// …

const convolver = audioCtx.createConvolver();
// …

// Grab audio track via fetch() for convolver node
try {
  const response = await fetch(
    "https://mdn.github.io/voice-change-o-matic/audio/concert-crowd.ogg",
  );
  const arrayBuffer = await response.arrayBuffer();
  const decodedAudio = await audioCtx.decodeAudioData(arrayBuffer);
  convolver.buffer = decodedAudio;
} catch (error) {
  console.error(
    `Unable to fetch the audio file: ${name} Error: ${err.message}`,
  );
}

规范

规范
Web Audio API
# dom-baseaudiocontext-createconvolver

浏览器兼容性

另见