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 |
瀏覽器相容性
載入中…