Javascript Web音频API延迟后停止

Javascript Web音频API延迟后停止,javascript,html,web-audio-api,Javascript,Html,Web Audio Api,我有这个片段来演奏。我将stop()函数中的延迟设置为5秒。它在第一次被调用时起作用。但是任何后续调用的延迟都没有发生——它只是在time1过期时停止 有什么建议吗?有什么问题吗 function playSound() { var mySource = myAudioContext.createOscillator(); var myGain = myAudioContext.createGainNode(); mySource.frequency.value = 2

我有这个片段来演奏。我将
stop()
函数中的延迟设置为5秒。它在第一次被调用时起作用。但是任何后续调用的延迟都没有发生——它只是在time1过期时停止

有什么建议吗?有什么问题吗

function playSound() {
    var mySource = myAudioContext.createOscillator();
    var myGain = myAudioContext.createGainNode();

    mySource.frequency.value = 261.625;
    mySource.connect(myGain);
    myGain.gain.value = 1.0;
    myGain.connect(myAudioContext.destination);

    mySource.start(0);
    setTimeout(function(s) {
               mySource.stop(5);   //stop after 5 sec. only works for the first call
               }, time1, mySource);

}
停止(n)不会在“从现在起n秒后”生效。这是一个绝对时间-时间从零开始,因此第一次它似乎起作用[*]

改用这个:

mySource.stop( 5 + myAudioContext.currentTime );
[*]这实际上还依赖于Webkit/Blink中的一个bug,在创建第一个节点之前,我们不会开始运行时间;它应该在创建AudioContext时开始。

stop(n)不会在“从现在起n秒后”生效。它是一个绝对时间,时间从零开始,因此第一次它似乎起作用[*]

改用这个:

mySource.stop( 5 + myAudioContext.currentTime );
[*]这实际上还依赖于Webkit/Blink中的一个bug,在创建第一个节点之前,我们不会开始运行时间;它应该在创建AudioContext时开始。

stop(n)不会在“从现在起n秒后”生效。它是一个绝对时间,时间从零开始,因此第一次它似乎起作用[*]

改用这个:

mySource.stop( 5 + myAudioContext.currentTime );
[*]这实际上还依赖于Webkit/Blink中的一个bug,在创建第一个节点之前,我们不会开始运行时间;它应该在创建AudioContext时开始。

stop(n)不会在“从现在起n秒后”生效。它是一个绝对时间,时间从零开始,因此第一次它似乎起作用[*]

改用这个:

mySource.stop( 5 + myAudioContext.currentTime );
[*]这实际上还依赖于Webkit/Blink中的一个bug,在创建第一个节点之前,我们不会开始运行时间;它应该在创建AudioContext时开始