AudioContext: phương thức suspend()

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 suspend() của giao diện AudioContext tạm dừng dòng thời gian trong ngữ cảnh âm thanh, tạm thời ngừng truy cập phần cứng âm thanh và giảm mức sử dụng CPU/pin trong quá trình đó. Điều này hữu ích nếu bạn muốn một ứng dụng tắt phần cứng âm thanh khi nó sẽ không dùng đến audio context trong một khoảng thời gian.

Phương thức này sẽ khiến ngoại lệ INVALID_STATE_ERR được ném ra nếu được gọi trên một OfflineAudioContext.

Cú pháp

js
suspend()

Tham số

Không có.

Giá trị trả về

Một Promise hoàn tất với undefined. Promise sẽ bị từ chối nếu ngữ cảnh đã bị đóng.

Ví dụ

Đoạn mã sau được lấy từ bản demo AudioContext states của chúng tôi (xem chạy trực tiếp.) Khi nút tạm dừng/tiếp tục được nhấn, AudioContext.state được kiểm tra: nếu là running thì gọi suspend(); nếu là suspended thì gọi resume(). Trong mỗi trường hợp, nhãn văn bản của nút được cập nhật tương ứng sau khi promise hoàn tất.

js
susResBtn.onclick = () => {
  if (audioCtx.state === "running") {
    audioCtx.suspend().then(() => {
      susResBtn.textContent = "Resume context";
    });
  } else if (audioCtx.state === "suspended") {
    audioCtx.resume().then(() => {
      susResBtn.textContent = "Suspend context";
    });
  }
};

Thông số kỹ thuật

Specification
Web Audio API
# dom-audiocontext-suspend

Tương thích trình duyệt

Xem thêm