AudioBufferSourceNode: thuộc tính buffer

Baseline Widely available

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

Thuộc tính buffer của giao diện AudioBufferSourceNode cung cấp khả năng phát lại âm thanh bằng cách sử dụng một AudioBuffer làm nguồn dữ liệu âm thanh.

Nếu thuộc tính buffer được đặt thành giá trị null, nút sẽ tạo ra một kênh duy nhất chứa sự im lặng (tức là mọi mẫu đều bằng 0).

Giá trị

Một AudioBuffer chứa dữ liệu biểu diễn âm thanh mà nút sẽ phát.

Ngoại lệ

InvalidStateError DOMException

Được ném ra nếu thuộc tính buffer đã được đặt thành một giá trị khác null, rồi lại tiếp tục được đặt thành một giá trị khác null lần nữa.

Ví dụ

Note: Để xem một ví dụ hoạt động hoàn chỉnh, hãy xem mã này chạy trực tiếp, hoặc xem mã nguồn.

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

button.onclick = () => {
  // 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;
};

Thông số kỹ thuật

Specification
Web Audio API
# dom-audiobuffersourcenode-buffer

Khả năng tương thích trình duyệt

Xem thêm