我想我完全错过了一些东西。 AudioParam接口的setValueAtTime(), linearRampToValueAtTime(), exponentialRampToValueAtTime(), setTargetAtTime()
方法都不适用于我。下面最简单的例子:
var context = new window.AudioContext();
gain = context.createGain();
gain.connect(context.destination);
// none of this is working, gain stays at 1
gain.gain.setValueAtTime(0.5, 0);
gain.gain.setValueAtTime(0.2, 1);
setInterval(function () {
console.log(gain.gain.value);
}, 100);
预计增益为0.5,1秒后为0.2。但是,它保持在1.对于每个其他调度方法也是如此。什么都行不通。有什么问题?
编辑:显然这些方法都很好。我用音频源进行了测试,增益正在发生变化。那么我的问题是为什么控制台会记录初始值?答案 0 :(得分:1)
自动值不会在.value属性中公开。见computation of value,项目1。
答案 1 :(得分:1)
这似乎是Firefox的一个问题,并且已经被报告为bug:https://bugzilla.mozilla.org/show_bug.cgi?id=893020