ConstantSourceNode: offset 屬性

Baseline 已廣泛支援

此特性已得到良好支援,可在多種裝置和瀏覽器版本上使用。自 2021 年 4 月起,所有瀏覽器均已支援此特性。

ConstantSourceNode 介面的只讀 offset 屬性返回一個 AudioParam 物件,該物件指示當源被要求提供下一個樣本時始終返回的數值 a-rate 值。

注意: 雖然名為 offsetAudioParam 是隻讀的,但其中的 value 屬性不是。因此,您可以透過設定 ConstantSourceNode.offset.value 的值來更改 offset 的值。

js
myConstantSourceNode.offset.value = newValue;

一個 AudioParam 物件,指示該節點為每個樣本返回的 a-rate 值。預設值為 1.0。

要訪問 offset 引數的當前值,請訪問引數的 value 屬性,如上方語法框所示。

示例

此示例展示瞭如何設定 ConstantSourceNode,使其 offset 值用作一對 GainNode 的輸入;此程式碼段源自完整的示例,您可以在 使用 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);

首先,建立並配置增益節點,並將滑塊控制元件的值設定為與兩個節點上的增益匹配。然後,我們建立一個新的 ConstantSourceNode,並將其作為兩個增益節點 GainNode.gain 值的源。這些值中的每一個也是一個 AudioParam

假設我們有一個事件處理程式(在此例中是用於 click 事件)需要響應並修改兩個增益節點的值。在上述連結到位的情況下,可以使用此簡單的事件處理程式來完成此操作。

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

此函式所要做的就是獲取我們用於控制成對節點增益的滑塊控制元件的當前值,然後將該值儲存到 ConstantSourceNodeoffset 引數中。這是透過更改其 AudioParam.value 屬性的內容來完成的。兩個增益節點會迅速採用新的音量級別。

規範

規範
Web Audio API
# dom-constantsourcenode-offset

瀏覽器相容性

另見