SourceBuffer:abort() 方法

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

注意:此功能在 專用 Web Workers 中可用。

SourceBuffer 介面的 abort() 方法會中止當前段並重置段解析器。

語法

js
abort()

引數

無。

返回值

無(undefined)。

異常

InvalidStateError DOMException

如果父級媒體源的 MediaSource.readyState 屬性不等於 open,或者此 SourceBuffer 已從 MediaSource 中移除,則會丟擲此異常。

示例

abort() 的規範描述有點令人困惑——例如,可以考慮 重置解析器狀態 的第 1 步。MSE API 是完全非同步的,但這一步似乎暗示了一個同步(阻塞)操作,這似乎說不通。

儘管如此,在某些情況下,當前實現會很有用,當您想要停止在源緩衝區上正在進行的分段附加(或其他操作)時,然後立即再次對它執行操作。例如,考慮以下程式碼:

js
sourceBuffer.addEventListener("updateend", (ev) => {
  // …
});

sourceBuffer.appendBuffer(buf);

假設在呼叫 appendBufferupdateend 事件觸發之前(即,正在附加緩衝區但操作尚未完成),使用者“拖動”影片,跳轉到新的時間點。在這種情況下,您將希望手動呼叫源緩衝區的 abort() 來停止當前緩衝區的解碼,然後獲取並附加與影片當前新位置相關的、新請求的段。

規範

規範
Media Source Extensions™
# dom-sourcebuffer-abort

瀏覽器相容性

另見