1、實例化new AudioContext();
2、AudioContext.decodeAudioData解析音頻
3、創建AudioBufferSourceNode接口source
4、給AudioBufferSourceNode接口提供Buffer用以播放:source.buffer = buffer
5、播放結束後開啓下一輪播放: source.onended = () => playNext();
6、將音頻源連接到音頻輸出設備:source.connect(audioContext.destination)
7、開始播放source.start()
AudioContext.destination
Baseline Widely available
AudioContext的 destination 屬性返回一個 AudioDestinationNode,表示 context 中所有音頻的最終目標節點,一般是音頻渲染設備,比如揚聲器。
AudioContext.decodeAudioData
AudioContext接口的 decodeAudioData() 方法可用於異步解碼音頻文件中的 ArrayBuffer。ArrayBuffer 數據可以通過 XMLHttpRequest 和 FileReader 來獲取。AudioBuffer 是通過 AudioContext 採樣率進行解碼的,然後通過回調返回結果。
這是從音頻軌道創建用於 web audio API 音頻源的首選方法。
AudioContext.createBufferSource()
createBufferSource() 方法用於創建一個新的AudioBufferSourceNode接口,該接口可以通過AudioBuffer 對象來播放音頻數據。AudioBuffer對象可以通過AudioContext.createBuffer來創建或者通過 AudioContext.decodeAudioData成功解碼音軌後獲取。
BaseAudioContext:createGain()
createGain()該接口的方法創建BaseAudioContext 一個GainNode,可用於控制音頻圖的整體增益(或音量)。