AudioScheduledSourceNode: stop() メソッド

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.

stop()AudioScheduledSourceNode のメソッドは、指定された時刻に音の再生が停止するようにスケジュールします。時刻を指定しない場合は、音は直ちに再生を停止します。

同じノードで stop() を呼び出すたびに、以前にスケジュールされた停止時刻のうち、まだ発生していない時刻が指定された時刻に置き換わります。ノードが既に停止している場合、このメソッドは何の効果もありません。

メモ: ノードの予定開始時刻の前に予定停止時刻が発生した場合、ノードは再生を開始しません。

構文

js
stop()
stop(when)

引数

when 省略可

音の再生を停止する時刻を、秒単位で指定します。この値は AudioContext がその currentTime 属性に使用しているのと同じ時間座標系で指定されます。この引数を除外したり、 0 を指定したり、負の値を渡したりすると、音の再生が即座に停止します。

返値

なし (undefined)。

例外

InvalidStateNode DOMException

ノードが start() の呼び出しによって開始されていない場合に発生します。

RangeError

when に指定した値が負である場合に発生します。

この例では、発振器ノードを起動し、すぐに演奏を始め、 1 つ目で演奏を停止するようにスケジュールしています。停止時間は、音声コンテキストの現在時刻を AudioContext.currentTime から取り出し、 1 秒を足すことで決定されます。

js
context = new AudioContext();
osc = context.createOscillator();
osc.connect(context.destination);

/* しばらく後に停止させたい場合は、引数として秒数を指定します。 */

osc.start();
osc.stop(context.currentTime + 1);

仕様書

Specification
Web Audio API
# dom-audioscheduledsourcenode-stop

ブラウザーの互換性

BCD tables only load in the browser

参考