SourceBuffer.changeType()
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.
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.
Syntax
sourceBuffer.changeType(type);
Parameters
type-
A
DOMStringspecifying the MIME type that future buffers will conform to.
Return value
None.
Exceptions
-
TypeErrorDOMException -
Thrown if the specified string is empty, rather than indicating a valid MIME type.
-
InvalidStateErrorDOMException -
Thrown if the
SourceBufferis not a member of the parent media source'ssourceBufferslist, or the buffer'supdatingproperty indicates that a previously queuedappendBuffer()orremove()is still being processed. -
NotSupportedErrorDOMException -
Thrown if the specified MIME type is not supported, or is not supported with the types of
SourceBufferobjects present in theMediaSource.sourceBufferslist.
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
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
changeType |
70 |
79 |
63 |
No |
? |
12.1 |
70 |
70 |
63 |
? |
13
Exposed in Mobile Safari on iPad but not on iPhone.
|
10.0 |
See also
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer/changeType