BaseAudioContext

Baseline 已廣泛支援

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

Web 音訊 API 中的 BaseAudioContext 介面為線上和離線音訊處理圖提供了基礎定義,分別由 AudioContextOfflineAudioContext 表示。您不會直接使用 BaseAudioContext,而是透過這兩個繼承的介面之一來使用它的功能。

BaseAudioContext 可以是事件的目標,因此它實現了 EventTarget 介面。

EventTarget BaseAudioContext

例項屬性

BaseAudioContext.audioWorklet 只讀 安全上下文

返回 AudioWorklet 物件,可用於建立和管理 AudioNode,其中實現 AudioWorkletProcessor 介面的 JavaScript 程式碼在後臺執行以處理音訊資料。

BaseAudioContext.currentTime 只讀

返回一個雙精度浮點數,表示用於排程的不斷增加的硬體時間(以秒為單位)。它從 0 開始。

BaseAudioContext.destination 只讀

返回一個 AudioDestinationNode,表示上下文中所有音訊的最終目的地。可以將其視為音訊渲染裝置。

BaseAudioContext.listener 只讀

返回 AudioListener 物件,用於 3D 空間化。

BaseAudioContext.sampleRate 只讀

返回一個浮點數,表示此上下文中所有節點使用的取樣率(每秒取樣數)。AudioContext 的取樣率不可更改。

BaseAudioContext.state 只讀

返回 AudioContext 的當前狀態。

例項方法

還實現了 EventTarget 介面的方法

BaseAudioContext.createAnalyser()

建立一個 AnalyserNode,可用於暴露音訊時域和頻域資料,例如用於建立資料視覺化。

BaseAudioContext.createBiquadFilter()

建立一個 BiquadFilterNode,表示一個二階濾波器,可配置為多種常見的濾波器型別:高通、低通、帶通等。

BaseAudioContext.createBuffer()

建立一個新的、空的 AudioBuffer 物件,然後可以填充資料並透過 AudioBufferSourceNode 播放。

BaseAudioContext.createBufferSource()

建立一個 AudioBufferSourceNode,可用於播放和操作 AudioBuffer 物件中包含的音訊資料。AudioBuffer 使用 AudioContext.createBuffer() 建立,或者在成功解碼音訊軌道時由 AudioContext.decodeAudioData() 返回。

BaseAudioContext.createConstantSource()

建立一個 ConstantSourceNode 物件,它是一個音訊源,可連續輸出單聲道(單通道)聲音訊號,所有樣本值都相同。

BaseAudioContext.createChannelMerger()

建立一個 ChannelMergerNode,用於將多個音訊流的通道合併到單個音訊流中。

BaseAudioContext.createChannelSplitter()

建立一個 ChannelSplitterNode,用於訪問音訊流的各個通道並單獨處理它們。

BaseAudioContext.createConvolver()

建立一個 ConvolverNode,可用於將卷積效果(例如混響效果)應用於您的音訊圖。

BaseAudioContext.createDelay()

建立一個 DelayNode,用於將輸入的音訊訊號延遲一定量。此節點還有助於在 Web 音訊 API 圖中建立反饋迴圈。

BaseAudioContext.createDynamicsCompressor()

建立一個 DynamicsCompressorNode,可用於對音訊訊號應用聲學壓縮。

BaseAudioContext.createGain()

建立一個 GainNode,可用於控制音訊圖的整體音量。

BaseAudioContext.createIIRFilter()

建立一個 IIRFilterNode,表示一個二階濾波器,可配置為多種常見的濾波器型別。

BaseAudioContext.createOscillator()

建立一個 OscillatorNode,這是一個代表週期性波形的源。它基本上生成一個音調。

BaseAudioContext.createPanner()

建立一個 PannerNode,用於在 3D 空間中對輸入的音訊流進行空間化。

BaseAudioContext.createPeriodicWave()

建立一個 PeriodicWave,用於定義可用於確定 OscillatorNode 輸出的週期性波形。

BaseAudioContext.createScriptProcessor() 已棄用

建立一個 ScriptProcessorNode,可用於透過 JavaScript 直接進行音訊處理。

BaseAudioContext.createStereoPanner()

建立一個 StereoPannerNode,可用於對音訊源應用立體聲聲像。

BaseAudioContext.createWaveShaper()

建立一個 WaveShaperNode,用於實現非線性失真效果。

BaseAudioContext.decodeAudioData()

非同步解碼 ArrayBuffer 中包含的音訊檔案資料。在這種情況下,通常在將 responseType 設定為 arraybuffer 後,從 XMLHttpRequestresponse 屬性載入 ArrayBuffer。此方法僅適用於完整檔案,不適用於音訊檔案的片段。

事件

statechange

AudioContext 的狀態因呼叫其中一個狀態更改方法(AudioContext.suspendAudioContext.resumeAudioContext.close)而改變時觸發。

示例

js
const audioContext = new AudioContext();

const oscillatorNode = audioContext.createOscillator();
const gainNode = audioContext.createGain();
const finish = audioContext.destination;

規範

規範
Web Audio API
# BaseAudioContext

瀏覽器相容性

另見