AudioBufferSourceNode: start() メソッド

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.

start()AudioBufferSourceNode インターフェイスのメソッドで、 このメソッドは、バッファーに含まれる音声データの再生を予約したり、すぐに再生を開始したりするために使用されます。

構文

js
start(when)
start(when, offset)
start(when, offset, duration)

引数

when 省略可

音が鳴り始めるべき時刻(秒単位)。 AudioContext が使用するのと同じ時間座標系で指定します。もし when が (AudioContext.currentTime よりも小さいか、 0 であれば、音の再生はすぐに開始されます。既定値は 0 です。

offset 省略可

音声バッファー内で再生を始めるべき時刻を、 AudioContext と同じ時間座標系で秒単位で指定したオフセットです。例えば、 10 秒の音声クリップの半分から再生を始めるには、 offset は 5 となります。既定値である 0 は、音声バッファーの先頭から再生を始めます。再生される音声の終わりを過ぎたオフセット(音声バッファーの durationloopEnd 属性に基づく)は、許容範囲内の最大値に暗黙に収められます。サウンドへのオフセットの計算は、現在の再生速度ではなく、音声バッファー本来のサンプルレートを使用して行われるため、サウンドが通常の 2 倍の速度で再生されている場合でも、 10 秒の音声バッファーの中間の点は 5 となります。

duration 省略可

サウンドの再生時間を秒単位で指定します。この引数が指定されなかった場合、サウンドは自然に終了するか、 stop() メソッドを使用して停止されるまで再生されます。この引数を使用すると、 start(when, offset) を呼び出してから stop(when+duration) を使用するのと機能的に同じになります。

返値

なし (undefined)。

例外

TypeError

3 つの時間引数のうち 1 つ以上に負の値が指定された場合に発生します。時間物理学の法則を改ざんしようとしないでください。

InvalidStateError DOMException

start() が既に呼び出されていた場合に発生します。この関数は AudioBufferSourceNode が生きている間に一度だけ呼び出すことができます。

最も単純な例は、音声バッファー再生を最初から始めるだけです。この場合、引数を指定する必要はありません。

js
source.start();

次はそれよりも複雑な再生方法です。1 秒待った後、音声バッファーの 3 秒経過した位置から、10 秒間再生します。

js
source.start(audioCtx.currentTime + 1, 3, 10);

メモ: start() の使い方の完全な例は AudioContext.decodeAudioData() を参照してください。例をライブで試してみることや、この例のソースを見てみることもできます。

仕様書

Specification
Web Audio API
# dom-audiobuffersourcenode-start

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
start

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

関連情報