我正在交叉淡化一些音频,并且我在表格中存储了相等的功率曲线。我正在调用此函数来启动淡出。 fade参数是使用createGain()
创建的GainNodefade.gain.setValueCurveAtTime(epCurveOut,context.currentTime,fadeTime);
在Chrome和Safari中一切顺利,但Firefox(v30)抱怨:
SyntaxError: An invalid or illegal string was specified
而不是context.currentTime我尝试过0和0.01。这个方法可能没有实现吗?如果是这样,我将如何随着时间的推移安排余弦等功率斜坡?
答案 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似乎不那么宽容,并且当参数的类型正确但不允许值时会给出错误。