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)
それは正常に動作します。
最初のものが機能せず、エラーが返される理由を知りたいです。これを行う簡単な方法のようです。