卷积器节点:缓冲区属性

基线 广泛可用

此功能已经很成熟,并且在许多设备和浏览器版本上都能正常工作。从以下日期开始,它在所有浏览器中都可用 2021 年 4 月.

buffer 属性 ConvolverNode 接口表示一个单声道、立体声或 4 通道 AudioBuffer,其中包含 ConvolverNode 用于创建混响效果的(可能是多通道)冲激响应。

这通常是您要建模的空间中最接近冲激的简单录音。例如,如果您要建模浴室中的混响,您可能会在门附近设置一个麦克风来录制气球爆裂的声音或水槽中产生的合成冲激。然后,该音频录音可以用作缓冲区。

此音频缓冲区必须与 AudioContext 具有相同的采样率,否则会抛出异常。在设置此属性时,将使用缓冲区和属性的状态来配置 ConvolverNode,使其具有给定归一化的冲激响应。此属性的初始值为 null

一个 AudioBuffer

示例

分配音频缓冲区

以下示例创建一个卷积器节点,并为其分配一个 AudioBuffer

有关更完整的应用示例/信息,请查看我们的 变声器 演示(查看 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 音频 API
# dom-convolvernode-buffer

浏览器兼容性

BCD 表仅在浏览器中加载

另请参阅