网络音频Api:audioContext.createConstantSource()在Safari中没有实现;变通方法?

问题描述 投票:0回答:1

我正在使用网络音频Api来做一系列简单的计算机音乐电子音乐概念的演示。在一个例子中,我展示了如何建立一个 square wave 通过连续添加正弦波往上谐波系列,并显示示波器视图的过程。

我加入了一个输入范围滑块来随意调整基本频率,这就需要使用一个恒定源节点(constantSourceNode):所有振荡器的频率需要同时改变,否则,它们就会失相,破坏演示的视觉效果。我在chrome中运行得很好,但似乎

audioContext.createConstantSource()

在Safari中不支持。有什么建议可以替代实现吗?

(这里是一个演示的代码本链接,在chrome中工作。).

javascript safari webkit web-audio-api
1个回答
2
投票

Safari还没有一个实现 ConstantSourceNode. 如果你想让你的代码保持原样,你可以使用 标准音域 其中包括执行 ConstantSourceNode 用于不支持它的浏览器。

但如果你喜欢的话,你也可以自己建立一个。一个循环的 AudioBufferSourceNode 恒定的信号和 GainNode 可以用来达到同样的效果。的 AudioBuffer 搭配 AudioBufferSourceNode 需要至少有两个样本,因为如果只有一个样本,Safari将不会循环。

© www.soinside.com 2019 - 2024. All rights reserved.