Javascript Web音频-AudioParam调度功能不工作

Javascript Web音频-AudioParam调度功能不工作,javascript,scheduling,web-audio-api,Javascript,Scheduling,Web Audio Api,我想我完全错过了什么。AudioParam接口的setValueAtTime()、linearrantoValueAttime()、exponentialRampToValueAtTime()、setTargetAtTime()方法都不适用于我。下面是最简单的例子: var context = new window.AudioContext(); gain = context.createGain(); gain.connect(context.destination); // none of

我想我完全错过了什么。AudioParam接口的
setValueAtTime()、linearrantoValueAttime()、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。其他的调度方法也是如此。什么都不管用。有什么问题

这是小提琴:


编辑:显然,这些方法很好。我用音频源做了测试,增益有明显的变化。然后我的问题是为什么console一直记录初始值?

在.value属性中没有显示自动化值。请参阅,项目1。

这似乎是Firefox的一个问题,并且已经被报告为错误:

也许可以尝试将当前时间添加到0和1秒标记上
audioCtx.currentTime
我认为这是问题所在,但事实并非如此——一切都没有改变。不过,为了方便起见,我更新了小提琴。这是否可以听到?也许它发生在你超时之前?也许先尝试启动超时。或者最后调用
gain.connect…
以便稍后开始播放。问题不在于是否应该/不应该听到声音。它不起作用。我没有超时,我只是每1/10秒检查一次增益值…为什么它只在连接到输出之前工作…您使用的浏览器是什么?对我来说,它很好地记录了增益(Chrome Stable-Linux),它说“读取时,
属性总是返回当前时间的内在值”,所以…我很确定内在值不是包含自动化内容的值。这是您使用.value setter设置的值(或属性的默认值)。根据官方规范,value getter应该在调用时返回内在值,在Chrome中也是如此。还有Firefox中的一个bug,不,雷蒙德是对的。严格地说,Firefox尊重规范,Chrome则不尊重。也就是说,我认为规范是错误的,我应该修复规范和Firefox。