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);
  }
}

規範

此功能不屬於任何規範。它目前沒有成為標準的計劃。

瀏覽器相容性

另見