ConstantSourceNode: offset プロパティ

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.

offsetConstantSourceNode インターフェイスの読み取り専用プロパティで、 AudioParam オブジェクトを返し、数値で a-rate 値を示します。これはソースから次のサンプルを取り出す際に常に返されます。

メモ: offset という名前の AudioParam は読み取り専用ですが、その中の value プロパティは読み取り専用ではありません。そのため、 offset の値は ConstantSourceNode.offset.value の値を設定することで変更することができます。

js
myConstantSourceNode.offset.value = newValue;

このノードがサンプルごとに返す a-rate 値を示す AudioParam オブジェクトです。既定値は 1.0 です。

offset の現在の値にアクセスするには、上の構文ボックスで示したように、 value プロパティにアクセスしてください。

この例では、 ConstantSourceNode を設定して、その offsetGainNode のペアの入力として使用する方法を示します。この例は ConstantSourceNode による複数の引数の制御 にある、完全な例を元にして作成されています。

js
gainNode2 = context.createGain();
gainNode3 = context.createGain();
gainNode2.gain.value = gainNode3.gain.value = 0.5;

volumeSliderControl.value = gainNode2.gain.value;

constantSource = context.createConstantSource();
constantSource.connect(gainNode2.gain);
constantSource.connect(gainNode3.gain);

まず、ゲインノードを作成して設定し、スライダーコントロールの値を 2 つのノードのゲインと一致するように設定します。次に、新しい ConstantSourceNode を作成し、それを 2 つのゲインノードの GainNode.gain 値のソースとします。それらの値はそれぞれAudioParamでもあります。

例えば、 2 つのゲインノードの値を変更して応答する必要のあるイベントハンドラー(この場合は click イベント用)があるとします。上記のリンクがあるところで、この単純なイベントハンドラーを使用して、それを行うことができます。

js
function handleClickEvent(event) {
  constantSource.offset.value = volumeSliderControl.value;
}

この関数がしなければならないことは、ペアノードのゲインを制御するために使用しているスライダーコントロールの現在の値を取得して、その値を ConstantSourceNodeoffset に格納することのみです。これは、その AudioParam.value プロパティの中身を変更することで行われます。 2 つのゲインノードはすばやく新しいボリュームレベルを採用します。

仕様書

Specification
Web Audio API
# dom-constantsourcenode-offset

ブラウザーの互換性

BCD tables only load in the browser

関連情報