AudioContext:suspend() 方法

基线 广泛可用

此功能已得到良好建立,并在许多设备和浏览器版本中都能正常工作。它已在浏览器中可用,自 2021 年 4 月.

AudioContext 接口的 suspend() 方法会暂停音频上下文中的时间推移,暂时停止对音频硬件的访问,并在此过程中减少 CPU/电池的使用——如果您希望应用程序在一段时间内不使用音频上下文时关闭音频硬件,这将非常有用。

如果在 OfflineAudioContext 上调用此方法,则会引发 INVALID_STATE_ERR 异常。

语法

js
suspend()

参数

无。

返回值

一个 Promise,解析为 undefined。如果上下文已关闭,则该 Promise 将被拒绝。

示例

以下代码段取自我们的 AudioContext 状态演示查看其在线运行情况)。当单击暂停/恢复按钮时,会查询 AudioContext.state——如果它是 running,则调用 suspend();如果它是 suspended,则调用 resume()。在每种情况下,一旦 Promise 解析,按钮的文本标签都会相应更新。

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";
    });
  }
};

规范

规范
Web Audio API
# dom-audiocontext-suspend

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

另请参阅