AudioBufferSourceNode.buffer

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.

AudioBufferSourceNode 接口的 buffer 属性提供了重复播放音频的能力,该音频使用 AudioBuffer 作为声音文件的来源。

如果 buffer 属性的值为 null,节点会自动生成一个单声道的无声文件(所有采样均为 0)。

一个 AudioBuffer,包含了节点将要播放的声音数据。

示例

备注: 完整的示例请查看演示示例,或查看源代码

js
const myArrayBuffer = audioCtx.createBuffer(2, frameCount, audioCtx.sampleRate);

button.onclick = function() {
  // Fill the buffer with white noise;
  //just random values between -1.0 and 1.0
  for (let channel = 0; channel < channels; channel++) {
   // This gives us the actual ArrayBuffer that contains the data
   const nowBuffering = myArrayBuffer.getChannelData(channel);
   for (let i = 0; i < frameCount; i++) {
     // Math.random() is in [0; 1.0]
     // audio needs to be in [-1.0; 1.0]
     nowBuffering[i] = Math.random() * 2 - 1;
   }
  }

  // Get an AudioBufferSourceNode.
  // This is the AudioNode to use when we want to play an AudioBuffer
  const source = audioCtx.createBufferSource();
  // set the buffer in the AudioBufferSourceNode
  source.buffer = myArrayBuffer;

规范

Specification
Web Audio API
# dom-audiobuffersourcenode-buffer

浏览器兼容性

BCD tables only load in the browser

参见