SourceBuffer: removeAsync() 方法

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

非标准:此特性未标准化。我们不建议在生产环境中使用非标准特性,因为它们浏览器支持有限,并且可能会更改或被移除。但是,在没有标准选项的特定情况下,它们可以是合适的替代方案。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

SourceBuffer 接口的 removeAsync() 方法开始异步移除 SourceBuffer 中指定时间范围内的媒体段。该方法会返回一个 Promise,当指定时间范围内的缓冲区被移除后,该 Promise 会被 fulfilled。

仅当 updatingfalse 时才能调用此方法。如果不是这种情况,请调用 abort()

语法

js
removeAsync(start, end)

参数

start

一个表示时间范围开始的浮点数,单位为秒。

end

一个表示时间范围结束的浮点数,单位为秒。

返回值

一个 Promise,当指定时间范围内的缓冲区从 SourceBuffer 中移除后,其 fulfillment handler 会被执行。

示例

此示例建立了一个名为 emptySourceBuffer() 的异步函数,该函数会清除指定 SourceBuffer 的内容。

js
async function emptySourceBuffer(msBuffer) {
  await msBuffer.removeAsync(0, Infinity).catch((e) => {
    handleException(e);
  });
}

规范

此功能不是任何规范的一部分。它不打算成为标准。

浏览器兼容性

另见