Web音频API Firefox SetValueCurveAtime()

Web音频API Firefox SetValueCurveAtime(),firefox,web-audio-api,Firefox,Web Audio Api,我正在交叉衰减一些音频,我有一个相同的功率曲线存储在一个表中。我调用这个函数来启动淡出。fade参数是使用createGain()生成的GainNode fade.gain.SetValueCurveAtime(epCurveOut、context.currentTime、fadeTime) 在Chrome和Safari中一切进展顺利,但Firefox(v30)抱怨: SyntaxError:指定了无效或非法的字符串 我尝试了0和0.01,而不是context.currentTime。这个方法可

我正在交叉衰减一些音频,我有一个相同的功率曲线存储在一个表中。我调用这个函数来启动淡出。fade参数是使用createGain()生成的GainNode

fade.gain.SetValueCurveAtime(epCurveOut、context.currentTime、fadeTime)

在Chrome和Safari中一切进展顺利,但Firefox(v30)抱怨:
SyntaxError:指定了无效或非法的字符串


我尝试了0和0.01,而不是context.currentTime。这个方法可能没有实现吗?如果是这样的话,我该如何安排余弦等功率渐变时间呢?

Firefox似乎会在不希望参数设置ValueCurveAtime时给出该错误。例如,如果epCurveOut是一个空的Float32Array,或者如果同时已经计划了参数更改。我怀疑后者,因为Chrome在同样的情况下不会抛出错误。例如:

curve = new Float32Array([0.5, 0.5]);
node.gain.setValueCurveAtTime(curve, 5, 1);
node.gain.setValueCurveAtTime(curve, 5, 1);
Firefox第二次抛出错误。Chrome不会抛出错误。如果在调用SetValueCurveAtime之间调用node.gain.CancelScheduledValue(5),Firefox会允许它


编辑:哦,嗯,Chrome也不会抱怨一个空数组。无论如何,Firefox似乎不那么宽容,当参数的类型正确但值不允许时,会出现错误。

这似乎是我们这边的一个bug。事实上,我提交了跟踪文件。

数组肯定不是空的,因为我可以听到它在其他浏览器中工作。我想这也不是双重调度,因为我只是在淡入淡出后手动重新触发函数。现在,我只是简单地尝试一下,它似乎奏效了!我确实注意到,如果我在函数仍在衰减时触发它,这是不可操作的。但是语法错误每次都会发生,我还不知道是什么导致它…我正在重复使用相同的数组同时进行多层衰减,但如果FF不允许,这将没有多大意义。谢谢你澄清这一点!很高兴try/catch现在是一个有效的解决方法。