5

Chrome では、最初に AudioContext を使用して連続音を作成します。

var audioCtx = new (window.AudioContext || window.webkitAudioContext);

var oscillator = audioCtx.createOscillator();
var gainNode = audioCtx.createGain();

oscillator.connect(gainNode);
gainNode.connect(audioCtx.destination);

oscillator.start();

数ミリ秒後に停止したいと思います。だから私はこれを行います:

setTimeout(oscillator.stop, 500)

これはエラーを返しますUncaught TypeError: Illegal invocation

しかし、もしそうなら;

setTimeout(function(){oscillator.stop()}, 500)

それは正常に動作します。

最初のものが機能せず、エラーが返される理由を知りたいです。これを行う簡単な方法のようです。

4

1 に答える 1