【发布时间】:2018-06-19 22:23:37
【问题描述】:
为了不让听众窒息,我想播放一个波形,但音量不应从一开始就以 100% 的比例播放,例如,它应该在 2 秒的持续时间内从 0% 变为 100%。
我设置了一个setTimeout,我通过时间增加了增益,但我不知道是否有其他更好的方法
var source = aCtx.createBufferSource();
source.buffer = buf;
var gainNode = aCtx.createGain();
gainNode.gain.value = 0
source.connect(gainNode);
gainNode.connect(aCtx.destination);
source.start(0);
setTimeout(function() {
gainNode.gain.value = 0.5
}, 1000)
setTimeout(function() {
gainNode.gain.value = 1
}, 2000)
【问题讨论】:
-
你应该做两次以上。请注意,正如现在所写的那样,您的音频会保持沉默半秒,然后会爆炸到 50% 的增益。
-
是的,根据我正在修复的步骤,我设置了一个 setTimeout 循环
-
是的,添加一些小增益并重新安排放大,直到增益达到 1.0(或略低于)。