SourceBuffer: changeType() method
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
Parameters
-
type
-
A string specifying the MIME type that future buffers will conform to.
Return value
Exceptions
-
TypeError
-
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 readyState
property of the parent MediaSource
is set to "ended"
, calling changeType()
will set the readyState
property to"open"
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 |
57 |
12.1 |
70 |
70 |
63 |
49 |
13Exposed in Mobile Safari on iPad but not on iPhone.
|
10.0 |
worker_support |
108 |
108 |
No |
No |
94 |
No |
108 |
108 |
No |
73 |
No |
21.0 |
See also