AudioProcessingEvent:inputBuffer 属性

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

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

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

一个 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 音频 API
# dom-audioprocessingevent-inputbuffer

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅