AudioContext: suspend() 方法

Baseline 已廣泛支援

此特性已得到良好支援,可在多種裝置和瀏覽器版本上使用。自 2021 年 4 月起,所有瀏覽器均已支援此特性。

AudioContext 介面的 suspend() 方法會暫停音訊上下文中的時間程序,暫時停止音訊硬體訪問,並在此過程中減少 CPU/電池使用量——如果你希望應用程式在一段時間內不使用音訊上下文時關閉音訊硬體,這將非常有用。

如果對 OfflineAudioContext 呼叫此方法,將丟擲 INVALID_STATE_ERR 異常。

語法

js
suspend()

引數

無。

返回值

一個解析為 undefinedPromise。如果上下文已被關閉,則 Promise 會被拒絕。

示例

以下程式碼片段取自我們的 AudioContext 狀態演示線上檢視)。當點選 suspend/resume 按鈕時,會查詢 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

瀏覽器相容性

另見