WebAudio 设置 gainNode.gain.value
WebAudio setting gainNode.gain.value
我正在尝试处理与设置 gainNode.gain.value 有关的 WebAudio API 已弃用的 Chrome 功能。我当前的代码是这样的:
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 平滑已弃用,并将在 2018 年 1 月左右在 M64 中删除。请使用 setTargetAtTime() 代替,如果需要进行平滑处理。有关详细信息,请参阅 https://www.chromestatus.com/features/5287995770929152"
要使错误消息消失,我可以这样做:
source.gainNode.gain.setTargetAtTime(0, ctx.currentTime, 0.015);
但是如何将 my_gain
变量合并到其中?
所以,您可以忽略此消息。在这种情况下,平滑对您来说并不重要。如果你确实想要平滑,你应该使用:
source.gainNode.gain.setTargetAtTime(my_value, ctx.currentTime, 0.015);
将 my_value 设置为 -1 不起作用的原因是它不应该 - 您所做的只是反转声音(即声音值在 -1 和 1 之间开始,这会翻转它们但不会使它们归零)。为了关闭声音,您应该做的是使 my_value=0.
我正在尝试处理与设置 gainNode.gain.value 有关的 WebAudio API 已弃用的 Chrome 功能。我当前的代码是这样的:
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 平滑已弃用,并将在 2018 年 1 月左右在 M64 中删除。请使用 setTargetAtTime() 代替,如果需要进行平滑处理。有关详细信息,请参阅 https://www.chromestatus.com/features/5287995770929152"
要使错误消息消失,我可以这样做:
source.gainNode.gain.setTargetAtTime(0, ctx.currentTime, 0.015);
但是如何将 my_gain
变量合并到其中?
所以,您可以忽略此消息。在这种情况下,平滑对您来说并不重要。如果你确实想要平滑,你应该使用:
source.gainNode.gain.setTargetAtTime(my_value, ctx.currentTime, 0.015);
将 my_value 设置为 -1 不起作用的原因是它不应该 - 您所做的只是反转声音(即声音值在 -1 和 1 之间开始,这会翻转它们但不会使它们归零)。为了关闭声音,您应该做的是使 my_value=0.