SourceBuffer: changeType() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

注意:此功能在 专用 Web Workers 中可用。

SourceBuffer 接口的 changeType() 方法用于设置未来调用 appendBuffer() 时,新媒体数据应符合的 MIME 类型。这使得在流媒体播放过程中更改编解码器或容器类型成为可能。

在某些场景下,通过根据资源限制的变化从一个编解码器切换到另一个编解码器,可以帮助使媒体源适应不断变化的带宽可用性。

语法

js
changeType(type)

参数

type

一个字符串,指定未来缓冲区将符合的 MIME 类型。

返回值

无(undefined)。

异常

TypeError

如果指定的字符串为空,而不是表示有效的 MIME 类型,则会抛出此错误。

InvalidStateError DOMException

如果 SourceBuffer 不是父级媒体源的 sourceBuffers 列表中的成员,或者缓冲区的 updating 属性指示之前排队的 appendBuffer()remove() 仍在处理中,则会抛出此错误。

NotSupportedError DOMException

如果指定的 MIME 类型不受支持,或者在 MediaSource.sourceBuffers 列表中存在的 SourceBuffer 对象类型不支持该 MIME 类型,则会抛出此错误。

用法说明

如果父级 MediaSourcereadyState 属性设置为 "ended",调用 changeType() 会将 readyState 属性设置为 "open",并在父级媒体源上触发一个名为 sourceopen 的事件。

规范

规范
Media Source Extensions™
# dom-sourcebuffer-changetype

浏览器兼容性

另见