SourceBuffer:changeType() 方法

changeType() 方法是 SourceBuffer 接口的一个方法,它设置了未来调用 appendBuffer() 时应期望新媒体数据符合的 MIME 类型。这使得可以在流传输过程中更改编解码器或容器类型成为可能。

一个有帮助的场景是支持使媒体源适应不断变化的带宽可用性,通过在资源限制发生变化时从一种编解码器过渡到另一种编解码器。

语法

js
changeType(type)

参数

type

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

返回值

无 (undefined)。

异常

TypeError

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

InvalidStateError DOMException

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

NotSupportedError DOMException

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

使用说明

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

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅