The changeType() method of the SourceBuffer interface sets the MIME type that future calls to appendBuffer() should expect the new media data to conform to. This makes it possible to change codecs or container type mid-stream.

One scenario in which this is helpful is to support adapting the media source to changing bandwidth availability, by transitioning from one codec to another as resource constraints change.





A string specifying the MIME type that future buffers will conform to.

Return value

None (undefined).



Thrown if the specified string is empty, rather than indicating a valid MIME type.

InvalidStateError DOMException

Thrown if the SourceBuffer is not a member of the parent media source's sourceBuffers list, or the buffer's updating property indicates that a previously queued appendBuffer() or remove() is still being processed.

NotSupportedError DOMException

Thrown if the specified MIME type is not supported, or is not supported with the types of SourceBuffer objects present in the MediaSource.sourceBuffers list.

Usage notes

If the parent MediaSource is in its "ended" readyState, calling changeType() will transition the media source to the "open" readyState and fire a simple event named sourceopen at the parent media source.

Browser compatibility

BCD tables only load in the browser

See also