WebAudio设置gainNode.gain.value

时间:2018-02-05 00:52:46

标签: javascript web-audio

我正在尝试处理WebAudio API的弃用Chrome功能,该功能与设置gainNode.gain.value有关。我目前的代码是:

var source = ctx.createBufferSource();
var my_gain = -1; //or 1, depending on whether I want sound or not
source.gainNode.gain.value = Math.min(1.0, Math.max(-1.0, gain));

然而,这会给我一个错误信息:" [弃用] GainNode.gain.value setter smoothing已弃用,将于2018年1月左右在M64中删除。如果需要平滑,请使用setTargetAtTime() 。有关详细信息,请参阅https://www.chromestatus.com/features/5287995770929152和#34;

要使错误消息消失,我可以执行以下操作:

source.gainNode.gain.setTargetAtTime(0, ctx.currentTime, 0.015);

但是如何将my_gain变量合并到此?

1 个答案:

答案 0 :(得分:3)

所以,你可以忽略这个消息。在这种情况下,平滑对你来说无关紧要。如果你想要平滑,你应该使用:

source.gainNode.gain.setTargetAtTime(my_value, ctx.currentTime, 0.015);

将my_value设置为-1不起作用的原因是它不应该 - 你正在做的只是反转声音(即声音值在-1和1之间开始,这会翻转但是不要让他们为零)。为了关闭声音,你应该做的是使my_value = 0。