SourceBuffer: mode 属性
注意:此功能在 专用 Web Workers 中可用。
SourceBuffer 接口的 mode 属性用于控制媒体段是都可以按任意顺序附加到 SourceBuffer,还是必须按严格的顺序附加。
可用的两个值是:
segments:媒体段的时间戳决定了播放段的顺序。段可以按任意顺序附加到SourceBuffer。sequence:段附加到SourceBuffer的顺序决定了它们的播放顺序。段时间戳是自动生成的,以反映此顺序。
mode 值在创建 SourceBuffer 时通过 MediaSource.addSourceBuffer() 初始化。如果媒体段已存在时间戳,则值将设置为 segments;如果不存在,则值将设置为 sequence。
如果您尝试在初始值为 sequence 的情况下将 mode 属性值设置为 segments,则会抛出异常。在 sequence 模式下必须保持现有的段顺序。但是,您可以将值从 segments 更改为 sequence。这仅仅意味着播放顺序将被固定,并且会生成新的时间戳来反映这一点。
在 SourceBuffer 处理 appendBuffer() 或 remove() 调用期间,此属性无法更改。
值
字符串。
异常
设置此属性的新值时,可能会抛出以下异常:
InvalidAccessErrorDOMException-
当尝试将值设置为
segments而初始值为sequence时抛出。 InvalidStateErrorDOMException-
当
SourceBuffer对象正在更新(即,其SourceBuffer.updating属性当前为true),附加到此SourceBuffer的最后一个媒体段不完整,或者此SourceBuffer已从MediaSource中移除时抛出。
示例
此代码片段会将 sourceBuffer 的模式设置为 'sequence'(如果当前设置为 'segments'),从而将播放顺序设置为附加媒体段的顺序。
js
const curMode = sourceBuffer.mode;
if (curMode === "segments") {
sourceBuffer.mode = "sequence";
}
规范
| 规范 |
|---|
| Media Source Extensions™ # dom-sourcebuffer-mode |
浏览器兼容性
加载中…