此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

AudioContext:suspend() 方法

基线 广泛可用

自 2021年4月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

AudioContext 接口的 suspend() 方法会暂停音频上下文中时间的推进,暂时停止对音频硬件的访问,从而降低 CPU 或电池占用——如果你希望应用在一段时间内不使用音频上下文时关闭音频硬件,此方法会很有用。

如果在 OfflineAudioContext 上调用此方法,将抛出 INVALID_STATE_ERR 异常。

语法

js
suspend()

参数

无。

返回值

一个兑现为 undefinedPromise。如果上下文已关闭,则该 Promise 会被拒绝。

示例

以下代码片段取自我们的 AudioContext states 演示查看在线运行效果)。点击暂停/恢复按钮时,会查询 AudioContext.state——如果状态为 running,则调用 suspend();如果状态为 suspended,则调用 resume()。在每种情况下,Promise 兑现后都会相应更新按钮的文本标签。

js
susResBtn.onclick = () => {
  if (audioCtx.state === "running") {
    audioCtx.suspend().then(() => {
      susResBtn.textContent = "恢复上下文";
    });
  } else if (audioCtx.state === "suspended") {
    audioCtx.resume().then(() => {
      susResBtn.textContent = "暂停上下文";
    });
  }
};

规范

规范
Web Audio API
# dom-audiocontext-suspend

浏览器兼容性

参见