BaseAudioContext: phương thức createDelay()

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.

Phương thức createDelay() của BaseAudioContext được dùng để tạo một DelayNode, node này dùng để làm trễ tín hiệu âm thanh đầu vào một khoảng thời gian nhất định.

Note: Hàm dựng DelayNode() là cách được khuyến nghị để tạo một DelayNode; xem Tạo một AudioNode.

Cú pháp

js
createDelay(maxDelayTime)

Tham số

maxDelayTime Optional

Khoảng thời gian tối đa, tính bằng giây, mà tín hiệu âm thanh có thể bị làm trễ. Phải nhỏ hơn 180 giây và mặc định là 1 giây nếu không được chỉ định.

Giá trị trả về

Một DelayNode. Giá trị mặc định của DelayNode.delayTime là 0 giây.

Ví dụ

Chúng tôi đã tạo một ví dụ cho phép bạn phát liên tục ba mẫu âm thanh khác nhau, xem create-delay (bạn cũng có thể xem mã nguồn). Nếu bạn chỉ nhấn các nút phát, các vòng lặp sẽ bắt đầu ngay; nếu bạn kéo các thanh trượt sang phải rồi nhấn nút phát, một độ trễ sẽ được thêm vào, nhờ đó các âm thanh lặp sẽ không bắt đầu phát ngay lập tức mà sau một khoảng ngắn.

js
const audioCtx = new AudioContext();

const synthDelay = audioCtx.createDelay(5.0);

// …

let synthSource;

playSynth.onclick = () => {
  synthSource = audioCtx.createBufferSource();
  synthSource.buffer = buffers[2];
  synthSource.loop = true;
  synthSource.start();
  synthSource.connect(synthDelay);
  synthDelay.connect(destination);
  this.setAttribute("disabled", "disabled");
};

stopSynth.onclick = () => {
  synthSource.disconnect(synthDelay);
  synthDelay.disconnect(destination);
  synthSource.stop();
  playSynth.removeAttribute("disabled");
};

// …

let delay1;
rangeSynth.oninput = () => {
  delay1 = rangeSynth.value;
  synthDelay.delayTime.setValueAtTime(delay1, audioCtx.currentTime);
};

Thông số kỹ thuật

Specification
Web Audio API
# dom-baseaudiocontext-createdelay

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

Xem thêm