語法
js
abort()
引數
無。
返回值
無(undefined)。
異常
InvalidStateErrorDOMException-
如果父級媒體源的
MediaSource.readyState屬性不等於open,或者此SourceBuffer已從MediaSource中移除,則會丟擲此異常。
示例
abort() 的規範描述有點令人困惑——例如,可以考慮 重置解析器狀態 的第 1 步。MSE API 是完全非同步的,但這一步似乎暗示了一個同步(阻塞)操作,這似乎說不通。
儘管如此,在某些情況下,當前實現會很有用,當您想要停止在源緩衝區上正在進行的分段附加(或其他操作)時,然後立即再次對它執行操作。例如,考慮以下程式碼:
js
sourceBuffer.addEventListener("updateend", (ev) => {
// …
});
sourceBuffer.appendBuffer(buf);
假設在呼叫 appendBuffer 但 updateend 事件觸發之前(即,正在附加緩衝區但操作尚未完成),使用者“拖動”影片,跳轉到新的時間點。在這種情況下,您將希望手動呼叫源緩衝區的 abort() 來停止當前緩衝區的解碼,然後獲取並附加與影片當前新位置相關的、新請求的段。
規範
| 規範 |
|---|
| Media Source Extensions™ # dom-sourcebuffer-abort |
瀏覽器相容性
載入中…