SourceBuffer: appendBufferAsync() method

Note: This feature is available in Dedicated Web Workers.

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The appendBufferAsync() method of the SourceBuffer interface begins the process of asynchronously appending media segment data from an ArrayBuffer, a TypedArray or a DataView object to the SourceBuffer object. It returns a Promise which is fulfilled once the buffer has been appended.

Syntax

js
appendBufferAsync(source)

Parameters

source

Either an ArrayBuffer, a TypedArray or a DataView object that contains the media segment data you want to add to the SourceBuffer.

Return value

A Promise which is fulfilled when the buffer has been added successfully to the SourceBuffer object, or null, if the request could not be initiated.

Examples

This simplified example async function, fillSourceBuffer(), takes as input parameters buffer, an ArrayBuffer, a TypedArray, or a DataView, and a SourceBuffer object to which to append the source media from the buffer.

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

Specifications

This feature is not part of any specification. It is not on track to become a standard.

Browser compatibility

desktop mobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
appendBufferAsync
Experimental Non-standard
Chrome – No support
Chrome
footnote No support
Edge – No support
Edge
footnote No support
Firefox – No support
Firefox 62 (Release date: 2018-09-05)
disabled
disabled From version 62 users must explicitly set the media.mediasource.experimental.enabled preference to true. To change preferences in Firefox, visit about:config.
Opera – No support
Opera
footnote No support
Safari – No support
Safari
footnote No support
Chrome Android – No support
Chrome Android
footnote No support
Firefox for Android – No support
Firefox for Android
footnote No support
Opera Android – No support
Opera Android
footnote No support
Safari on iOS – No support
Safari on iOS
footnote No support
Samsung Internet – No support
Samsung Internet
footnote No support
WebView Android – No support
WebView Android
footnote No support
WebView on iOS – No support
WebView on iOS
footnote No support

Legend

Tip: you can click/tap on a cell for more information.

No support
No support
Experimental. Expect behavior to change in the future.
Non-standard. Check cross-browser support before using.
User must explicitly enable this feature.

See also