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 |
ブラウザーの互換性
BCD tables only load in the browser