SourceBuffer: appendBufferAsync() 方法

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

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

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

appendBufferAsync() 方法是 SourceBuffer 接口的一部分,它开始一个异步过程,将来自 ArrayBufferTypedArrayDataView 对象的媒体片段数据附加到 SourceBuffer 对象。它返回一个 Promise,该 Promise 在缓冲区附加完成后得到 fulfillment。

语法

js
appendBufferAsync(source)

参数

source

包含要添加到 SourceBuffer 的媒体片段数据的 ArrayBufferTypedArrayDataView 对象。

返回值

当缓冲区成功添加到 SourceBuffer 对象时,此 Promise 会得到 fulfillment;如果请求无法启动,则返回 null

示例

这个简化的异步函数示例 fillSourceBuffer() 接受一个 buffer 作为输入参数,它可以是一个 ArrayBuffer、一个 TypedArray 或一个 DataView,以及一个用于将缓冲区中的源媒体附加到的 SourceBuffer 对象。

js
async function fillSourceBuffer(buffer, msBuffer) {
  try {
    while (true) {
      await msBuffer.appendBufferAsync(buffer);
    }
  } catch (e) {
    handleException(e);
  }
}

规范

此功能不属于任何规范。它目前没有成为标准的计划。

浏览器兼容性

另见