卷积器节点:缓冲区属性
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 表仅在浏览器中加载