AudioContext

Baseline 廣泛可用 *

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

* 此特性的某些部分可能存在不同級別的支援。

AudioContext 介面表示一個由連結在一起的音訊模組構建的音訊處理圖,每個模組都由一個 AudioNode 表示。

音訊上下文控制著它包含的節點的建立和音訊處理或解碼的執行。在進行任何其他操作之前,您需要建立一個 AudioContext,因為所有操作都發生在上下文中。建議建立一個 AudioContext 並重用它,而不是每次都初始化一個新的,並且可以使用單個 AudioContext 同時處理多個不同的音訊源和管道。

EventTarget BaseAudioContext AudioContext

建構函式

AudioContext()

建立並返回一個新的 AudioContext 物件。

例項屬性

還繼承了其父介面 BaseAudioContext 的屬性。

AudioContext.baseLatency 只讀

返回 AudioContext 將音訊從 AudioDestinationNode 傳遞到音訊子系統所產生的處理延遲秒數。

AudioContext.outputLatency 只讀

返回當前音訊上下文的輸出延遲估算值。

AudioContext.sinkId 只讀 實驗性 安全上下文

返回當前輸出音訊裝置的接收器 ID。

例項方法

還繼承了其父介面 BaseAudioContext 的方法。

AudioContext.close()

關閉音訊上下文,釋放它使用的任何系統音訊資源。

AudioContext.createMediaElementSource()

建立一個與 HTMLMediaElement 關聯的 MediaElementAudioSourceNode。這可以用來播放和操作來自 <video><audio> 元素的音訊。

AudioContext.createMediaStreamSource()

建立一個與 MediaStream 關聯的 MediaStreamAudioSourceNode,該流代表可能來自本地計算機麥克風或其他來源的音訊流。

AudioContext.createMediaStreamDestination()

建立一個與 MediaStream 關聯的 MediaStreamAudioDestinationNode,該流代表可以儲存在本地檔案或傳送到另一臺計算機的音訊流。

AudioContext.createMediaStreamTrackSource()

建立一個與 MediaStream 關聯的 MediaStreamTrackAudioSourceNode,該流代表一個媒體流軌道。

AudioContext.getOutputTimestamp()

返回一個新的 AudioTimestamp 物件,其中包含與當前音訊上下文相關的兩個音訊時間戳值。

AudioContext.resume()

恢復先前已暫停/停止的音訊上下文的時間流逝。

AudioContext.setSinkId() 實驗性 安全上下文

設定 AudioContext 的輸出音訊裝置。

AudioContext.suspend()

暫停音訊上下文的時間流逝,暫時停止音訊硬體訪問,並在此過程中減少 CPU/電池使用。

事件

sinkchange 實驗性

當輸出音訊裝置(因此,AudioContext.sinkId)發生更改時觸發。

示例

基本音訊上下文宣告

js
const audioCtx = new AudioContext();

const oscillatorNode = audioCtx.createOscillator();
const gainNode = audioCtx.createGain();
const finish = audioCtx.destination;
// etc.

規範

規範
Web Audio API
# AudioContext

瀏覽器相容性

另見