ConstantSourceNode

Baseline 已廣泛支援

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

ConstantSourceNode 介面(Web Audio API 的一部分)代表一個音訊源(基於 AudioScheduledSourceNode),其輸出是一個單一不變的值。這使得它在需要從音訊源引入恆定值的情況下非常有用。此外,它還可以用作可構造的 AudioParam,透過自動化其 offset 的值或將其連線到另一個節點;請參閱 使用 ConstantSourceNode 控制多個引數

ConstantSourceNode 沒有輸入,只有一個單聲道(單通道)輸出。輸出的值始終與其 offset 引數的值相同。

EventTarget AudioNode AudioScheduledSourceNode ConstantSourceNode
輸入數量 0
輸出數量 1

建構函式

ConstantSourceNode()

建立並返回一個新的 ConstantSourceNode 例項,可以選擇指定一個物件來建立物件屬性的初始值。作為替代,您可以使用 BaseAudioContext.createConstantSource() 工廠方法;請參閱 建立 AudioNode

例項屬性

繼承其父介面 AudioScheduledSourceNode 的屬性,並新增以下屬性:

offset

一個 AudioParam,指定此源連續輸出的值。預設值為 1.0。

事件

繼承其父介面 AudioScheduledSourceNode 的事件。

注意: 某些瀏覽器對這些事件的實現是 AudioScheduledSourceNode 介面的一部分。

ended

每當 ConstantSourceNode 資料停止播放時觸發。

例項方法

繼承其父介面 AudioScheduledSourceNode 的方法。

注意: 某些瀏覽器對這些方法的實現是 AudioScheduledSourceNode 介面的一部分。

start()

安排在精確時間播放聲音。

stop()

安排在精確時間停止播放聲音。

示例

在文章 使用 ConstantSourceNode 控制多個引數 中,建立了一個 ConstantSourceNode 以便一個滑塊控制元件可以改變兩個 GainNode 的增益。這三個節點設定如下:

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

constantNode = context.createConstantSource();
constantNode.connect(gainNode2.gain);
constantNode.connect(gainNode3.gain);
constantNode.start();

gainNode2.connect(context.destination);
gainNode3.connect(context.destination);

此程式碼首先建立增益節點,並將它們和將調整其值的音量控制元件都設定為 0.5。然後透過呼叫 AudioContext.createConstantSource() 來建立 ConstantSourceNode,並將兩個增益節點的增益引數連線到 ConstantSourceNode。在呼叫其 start() 方法啟動常量源之後。最後,將兩個增益節點連線到音訊目標(通常是揚聲器或耳機)。

現在,每當 constantNode.offset 的值改變時,gainNode2gainNode3 的增益都將改變為相同的值。

要檢視此示例的實際效果,以及閱讀這些程式碼片段所源自的其餘程式碼,請參閱 使用 ConstantSourceNode 控制多個引數

規範

規範
Web Audio API
# ConstantSourceNode

瀏覽器相容性

另見