ConvolverNode: 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 ConvolverNode biểu diễn một AudioBuffer đơn âm, stereo hoặc 4 kênh chứa đáp ứng xung (có thể là đa kênh) mà ConvolverNode dùng để tạo hiệu ứng reverb.

Thông thường đây là một bản ghi đơn giản của âm thanh gần với một xung nhất có thể trong không gian mà bạn muốn mô phỏng. Ví dụ, nếu bạn muốn mô phỏng tiếng vang trong phòng tắm của mình, bạn có thể đặt một micro gần cửa để ghi lại tiếng nổ bóng bay hoặc xung tổng hợp phát ra từ bồn rửa. Bản ghi âm đó sau đó có thể được dùng làm bộ đệm.

Bộ đệm âm thanh này phải có cùng tốc độ lấy mẫu với AudioContext, nếu không một ngoại lệ sẽ được ném ra. Tại thời điểm thuộc tính này được đặt, bộ đệm và trạng thái của thuộc tính sẽ được dùng để cấu hình ConvolverNode với đáp ứng xung này cùng chế độ chuẩn hóa đã cho. Giá trị ban đầu của thuộc tính này là null.

Giá trị

Một AudioBuffer.

Ví dụ

Gán một bộ đệm âm thanh

Ví dụ sau tạo một nút convolver và gán cho nó một AudioBuffer.

Để xem ví dụ ứng dụng đầy đủ hơn, hãy tham khảo bản demo Voice-change-O-matic của chúng tôi (xem app.js để biết đoạn mã được trích bên dưới).

js
const audioCtx = new AudioContext();
// …

const convolver = audioCtx.createConvolver();
// …

// Grab audio track via fetch() for convolver node
try {
  const response = await fetch(
    "https://mdn.github.io/voice-change-o-matic/audio/concert-crowd.ogg",
  );
  const arrayBuffer = await response.arrayBuffer();
  const decodedAudio = await audioCtx.decodeAudioData(arrayBuffer);
  convolver.buffer = decodedAudio;
} catch (error) {
  console.error(
    `Unable to fetch the audio file: ${name} Error: ${err.message}`,
  );
}

Thông số kỹ thuật

Thông số kỹ thuật
Web Audio API
# dom-convolvernode-buffer

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

Xem thêm