Web Audio API Firefox setValueCurveAtTime()

时间:2014-09-17 20:06:15

标签: firefox web-audio

我正在交叉淡化一些音频,并且我在表格中存储了相等的功率曲线。我正在调用此函数来启动淡出。 fade参数是使用createGain()

创建的GainNode

fade.gain.setValueCurveAtTime(epCurveOut,context.currentTime,fadeTime);

在Chrome和Safari中一切顺利,但Firefox(v30)抱怨: SyntaxError: An invalid or illegal string was specified

而不是context.currentTime我尝试过0和0.01。这个方法可能没有实现吗?如果是这样,我将如何随着时间的推移安排余弦等功率斜坡?

2 个答案:

答案 0 :(得分:2)

这似乎是我们最终的错误,我提交https://bugzilla.mozilla.org/show_bug.cgi?id=1069825来跟踪此事。

答案 1 :(得分:1)

当Firefox不喜欢setValueCurveAtTime的参数时,似乎会给出错误。例如,如果epCurveOut是一个空的Float32Array,或者已经同时安排了参数更改。我怀疑后者,因为Chrome在相同的情况下不会抛出错误。例如:

curve = new Float32Array([0.5, 0.5]);
node.gain.setValueCurveAtTime(curve, 5, 1);
node.gain.setValueCurveAtTime(curve, 5, 1);

Firefox第二次抛出错误。 Chrome不会抛出错误。如果在调用setValueCurveAtTime之间调用node.gain.cancelScheduledValues(5),Firefox就允许它。

编辑:哦,嗯,Chrome也没有抱怨空的Float32Array。好吧,无论如何,Firefox似乎不那么宽容,并且当参数的类型正确但不允许值时会给出错误。