合成音频
在此示例中,我们将展示如何生成简单的正弦波,并将其输出到用户的扬声器/耳机上。
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
方法创建。