web-audio 合成音频
示例
在此示例中,我们展示了如何生成一个简单的正弦波,并将其输出到用户的扬声器/耳机上。
let audioContext = new (window.AudioContext || window.webkitAudioContext)(); let sourceNode = audioContext.createOscillator(); sourceNode.type = 'sine'; sourceNode.frequency.value = 261.6; sourceNode.detune.value = 0; //将信号源连接到扬声器 sourceNode.connect(audioContext.destination); //使声音可听到100毫秒 sourceNode.start(); window.setTimeout(function() { sourceNode.stop(); }, 100);
上面的变量的start和stop方法sourceNode都有一个可选参数when,用于指定启动或停止之前要等待的秒数。
因此,停止声音的另一种方法是:
sourceNode.start(); sourceNode.stop(0.1);
type可以将振荡器节点的参数设置为以下任意值:
正弦(默认)
广场
锯齿
训练
风俗习惯
自定义波形是PeriodicWaves并且可以使用该AudioContext.createPeriodicWave方法创建。