AudioProcessingEvent:outputBuffer 属性

已弃用:此功能不再推荐。尽管某些浏览器可能仍然支持它,但它可能已被从相关的 Web 标准中移除,可能正在被弃用,或者可能仅出于兼容性目的而保留。避免使用它,并在可能的情况下更新现有代码;请参阅此页面底部的兼容性表格以指导您的决策。请注意,此功能可能随时停止工作。

outputBufferAudioProcessingEvent接口的只读属性,表示音频处理事件的输出缓冲区。

输出缓冲区由一个AudioBuffer对象表示,该对象包含一组音频通道,每个通道都是一个浮点值数组,表示作为一系列幅度编码的音频信号波形。通道数和每个通道的长度由AudioBuffer的通道数和缓冲区大小属性决定。

一个AudioBuffer对象。

示例

在此示例中,创建了一个缓冲区大小为 256 个样本、2 个输入通道和 2 个输出通道的ScriptProcessorNode。当触发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 音频 API
# dom-audioprocessingevent-outputbuffer

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅