AudioProcessingEvent: outputBuffer 屬性

已棄用:此特性不再推薦。雖然某些瀏覽器可能仍然支援它,但它可能已經從相關的網路標準中刪除,可能正在刪除過程中,或者可能僅為相容性目的而保留。請避免使用它,如果可能,請更新現有程式碼;請參閱本頁底部的相容性表格以指導您的決策。請注意,此特性可能隨時停止工作。

AudioProcessingEvent 介面的只讀屬性 outputBuffer 代表音訊處理事件的輸出緩衝區。

輸出緩衝區由一個 AudioBuffer 物件表示,該物件包含一系列音訊通道,每個通道都是一個浮點數值陣列,代表編碼為一系列振幅的音訊訊號波形。通道數量和每個通道的長度由 AudioBuffer 的 channelCount 和 bufferSize 屬性確定。

一個 AudioBuffer 物件。

示例

在此示例中,建立了一個 ScriptProcessorNode,其緩衝區大小為 256 個樣本,2 個輸入通道和 2 個輸出通道。當觸發 audioprocess 事件時,會從事件物件中檢索輸入和輸出緩衝區。處理輸入緩衝區中的音訊資料,並將結果寫入輸出緩衝區。在此情況下,音訊資料按 0.5 的因子進行縮放。

js
const audioContext = new AudioContext();
const processor = audioContext.createScriptProcessor(256, 2, 2);

processor.addEventListener("audioprocess", (event) => {
  const inputBuffer = event.inputBuffer;
  const outputBuffer = event.outputBuffer;

  for (let channel = 0; channel < outputBuffer.numberOfChannels; channel++) {
    const inputData = inputBuffer.getChannelData(channel);
    const outputData = outputBuffer.getChannelData(channel);

    // Process the audio data here
    for (let i = 0; i < outputBuffer.length; i++) {
      outputData[i] = inputData[i] * 0.5;
    }
  }
});

processor.connect(audioContext.destination);

規範

規範
Web Audio API
# dom-audioprocessingevent-outputbuffer

瀏覽器相容性

另見