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

瀏覽器相容性

另見