我正在使用网络音频Api来做一系列简单的计算机音乐电子音乐概念的演示。在一个例子中,我展示了如何建立一个 square wave
通过连续添加正弦波往上谐波系列,并显示示波器视图的过程。
我加入了一个输入范围滑块来随意调整基本频率,这就需要使用一个恒定源节点(constantSourceNode):所有振荡器的频率需要同时改变,否则,它们就会失相,破坏演示的视觉效果。我在chrome中运行得很好,但似乎
audioContext.createConstantSource()
在Safari中不支持。有什么建议可以替代实现吗?
Safari还没有一个实现 ConstantSourceNode
. 如果你想让你的代码保持原样,你可以使用 标准音域 其中包括执行 ConstantSourceNode
用于不支持它的浏览器。
但如果你喜欢的话,你也可以自己建立一个。一个循环的 AudioBufferSourceNode
恒定的信号和 GainNode
可以用来达到同样的效果。的 AudioBuffer
搭配 AudioBufferSourceNode
需要至少有两个样本,因为如果只有一个样本,Safari将不会循环。