AudioScheduledSourceNode: stop() 方法

Baseline 已廣泛支援

此功能已成熟,並可在許多裝置和瀏覽器版本上使用。自 2020 年 9 月起,所有瀏覽器均已提供此功能。

AudioScheduledSourceNode 上的 stop() 方法用於排程聲音在指定時間停止播放。如果未指定時間,則聲音會立即停止播放。

每次在同一個節點上呼叫 stop() 時,指定的時間會替換掉任何先前已排程但尚未發生的停止時間。如果節點已停止,則此方法無效。

注意:如果排程的停止時間發生在節點排程的開始時間之前,則該節點將永遠不會開始播放。

語法

js
stop()
stop(when)

引數

when 可選

聲音應停止播放的秒數。此值使用與 AudioContextcurrentTime 屬性相同的時座標系指定。省略此引數、指定 0 或負值會導致聲音立即停止播放。

返回值

無(undefined)。

異常

InvalidStateNode DOMException

如果節點尚未透過呼叫 start() 來啟動,則會丟擲此異常。

RangeError

如果為 when 指定的值為負數,則會丟擲此異常。

示例

此示例演示瞭如何啟動一個振盪器節點,該節點計劃立即開始播放並在 1 秒後停止。停止時間透過獲取音訊上下文的當前時間(來自 AudioContext.currentTime)並加上 1 秒來確定。

js
context = new AudioContext();
osc = context.createOscillator();
osc.connect(context.destination);

/* Let's play a sine wave for one second. */

osc.start();
osc.stop(context.currentTime + 1);

規範

規範
Web Audio API
# dom-audioscheduledsourcenode-stop

瀏覽器相容性

另見