无法将createAnalyser()和createGain()连接到audioContext()

时间:2016-04-24 13:12:42

标签: javascript web-audio

我正在学习WebAudio API,并通过构建一个带有可视化器和均衡器的简单音频播放器进行实验。

可视化工具和均衡器都可以自行工作,但当我将两者连接到AudioContext时,均衡器会停止工作。

以下是一些代码......

均衡器

var sum = APP.audioContext.createGain();
APP.lGain.connect(sum);
APP.mGain.connect(sum);
APP.hGain.connect(sum);
sum.connect(APP.audioContext.destination);

可视化

APP.analyser = APP.audioContext.createAnalyser();
APP.source.connect(APP.analyser);
APP.analyser.connect(APP.audioContext.destination);

如果我移除最后一行APP.analyser.connect(APP.audioContext.destination);,那么均衡器就可以工作,但是我的可视化工具显然会断开。

这适用于Firefox,但不适用于Chrome(osx)。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

1)我的猜测是,并非均衡器"停止工作" - 您将均衡器的输出连接到分析仪的输出(这是源的传递!)到目的地,它和&# #39;对它们求和 - 所以你有一个均衡的副本与非均衡副本相加,并且它大大减轻了均衡器的效果。修复很简单 - 不要将分析仪连接到目的地。 (它不需要连接到任何工作。)

2)我怀疑你是否采用了不太理想的均衡方式。您应该在SERIES中使用搁置滤波器和峰值滤波器(一个连接到另一个),而不是三个并联滤波器(汇总到一个节点)。如果您并行连接它们,您将获得奇数相位偏移效果。看看这里:Web audio API equalizer