AudioProcessingEvent: inputBuffer 属性

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

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

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

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

浏览器兼容性

另见