语法
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 |
浏览器兼容性
加载中…