BaseAudioContext: createDelay() メソッド

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.

createDelay()BaseAudioContext インターフェイスのメソッドで、 DelayNode を生成します。これは、入力される音声信号を一定時間遅らせるために使用します。

メモ: DelayNode() コンストラクターは DelayNode を作成するための推奨される方法です。 AudioNode の作成を参照してください。

構文

js
createDelay(maxDelayTime)

引数

maxDelayTime 省略可

音声信号を遅延させることができる最大時間(秒)を指定します。 180 秒未満である必要があり、指定しない場合は 1 秒が既定値となります。

返値

DelayNode です。既定の DelayNode.delayTime は 0 秒です。

3 つの異なるサンプルを一定のループで再生する簡単な例を作成しました。 create-delay をご覧ください(ソースコードを閲覧することもできます)。再生ボタンを押しただけでは、ループはすぐに始まります。スライダーを右にスライドさせてから再生ボタンを押すと、遅延が導入され、ループする音は短い時間だけ再生を開始しません。

js
const audioCtx = new AudioContext();

const synthDelay = audioCtx.createDelay(5.0);

// …

let synthSource;

playSynth.onclick = () => {
  synthSource = audioCtx.createBufferSource();
  synthSource.buffer = buffers[2];
  synthSource.loop = true;
  synthSource.start();
  synthSource.connect(synthDelay);
  synthDelay.connect(destination);
  this.setAttribute("disabled", "disabled");
};

stopSynth.onclick = () => {
  synthSource.disconnect(synthDelay);
  synthDelay.disconnect(destination);
  synthSource.stop();
  playSynth.removeAttribute("disabled");
};

// …

let delay1;
rangeSynth.oninput = () => {
  delay1 = rangeSynth.value;
  synthDelay.delayTime.setValueAtTime(delay1, audioCtx.currentTime);
};

仕様書

Specification
Web Audio API
# dom-baseaudiocontext-createdelay

ブラウザーの互換性

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
createDelay

Legend

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

Full support
Full support

関連情報