This is an experimental technologyCheck 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
DOMString
specifying the MIME type that future buffers will conform to.
Return value
Exceptions
TypeError
- The specified string is empty, rather than indicating a valid MIME type.
InvalidStateError
- The
SourceBuffer
is not a member of the parent media source'ssourceBuffers
list, or the buffer'supdating
property indicates that a previously queuedappendBuffer()
orremove()
is still being processed. NotSupportedError
- The specified MIME type is not supported, or is not supported with the types of
SourceBuffer
objects present in theMediaSource.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
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Chrome Full support 70 Full support 70 No support 69 — 70 Disabled' From version 69 until version 70 (exclusive): this feature is behind the |
Edge
Full support 79 |
Firefox Full support 63 Full support 63 No support 61 — 63 Disabled' From version 61 until version 63 (exclusive): this feature is behind the |
IE
? |
Opera
? |
Safari
? |
WebView Android
Full support 70 |
Chrome Android Full support 70 Full support 70 No support 69 — 70 Disabled' From version 69 until version 70 (exclusive): this feature is behind the |
Firefox Android
No support No |
Opera Android
? |
Safari iOS
No support No |
Samsung Internet Android
Full support 10.0 |
Legend
- Full support
- Full support
- No support
- No support
- Compatibility unknown
- Compatibility unknown
- Non-standard. Expect poor cross-browser support.'
- Non-standard. Expect poor cross-browser support.
- User must explicitly enable this feature.'
- User must explicitly enable this feature.
See also
SourceBuffer.changeType() by Mozilla Contributors is licensed under CC-BY-SA 2.5.