合成音訊
在此示例中,我們將展示如何生成簡單的正弦波,並將其輸出到使用者的揚聲器/耳機上。
let audioContext = new (window.AudioContext || window.webkitAudioContext)();
let sourceNode = audioContext.createOscillator();
sourceNode.type = 'sine';
sourceNode.frequency.value = 261.6;
sourceNode.detune.value = 0;
//Connect the source to the speakers
sourceNode.connect(audioContext.destination);
//Make the sound audible for 100 ms
sourceNode.start();
window.setTimeout(function() { sourceNode.stop(); }, 100);
每個 sourceNode
變數的 start
和 stop
方法都有一個可選引數 when
,它指定在開始或停止之前等待的秒數。
因此,停止聲音的另一種方法是:
sourceNode.start();
sourceNode.stop(0.1);
振盪器節點的 type
引數可以設定為以下任何值:
- 正弦(預設)
- 廣場
- 鋸齒
- 黃金三角
- 自定義波
自定義波是 PeriodicWaves
,可以使用 AudioContext.createPeriodicWave
方法建立。