SourceBuffer.mode
mode は SourceBuffer インターフェイスのプロパティで、メディアセグメントを SourceBuffer に任意の順序で追加できるか、厳密な順序で追加できるかを制御します。
使用可能な 2 つの値は次のとおりです。
segments: メディアセグメントのタイムスタンプが、セグメントの再生順序を決定します。 セグメントは、任意の順序でSourceBufferに追加できます。sequence: セグメントがSourceBufferに追加される順序により、セグメントの再生順序を決定します。 セグメントのタイムスタンプは、この順序に従ってセグメントに対して自動的に生成されます。
mode 値は、MediaSource.addSourceBuffer() を使用して SourceBuffer が作成されるときに最初に設定されます。 メディアセグメントにタイムスタンプが既に存在する場合、値は segments に設定されます。 そうでない場合、値は sequence に設定されます。
初期値が sequence のときに mode プロパティ値を segments に設定しようとすると、例外がスローされます。 sequence モードでは、既存のセグメントの順序を維持する必要があります。 ただし、値を segments から sequence に変更することはできます。 これは、再生順序が固定され、これを反映するために新しいタイムスタンプが生成されることを意味します。
このプロパティは、SourceBuffer が appendBuffer() または remove() の呼び出しを処理している間は変更できません。
値
文字列です。
例外
このプロパティに新しい値を設定すると、次の例外がスローされる場合があります。
InvalidAccessErrorDOMException-
初期値が
sequenceの場合に、値をsegmentsに設定しようとした場合に発生します。 InvalidStateErrorDOMException-
SourceBufferオブジェクトが更新中(つまり、そのSourceBuffer.updatingプロパティが現在true)、このSourceBufferに追加された最後のメディアセグメントが不完全、またはこのSourceBufferがMediaSourceから取り除かれていた場合に発生します。
例
このスニペットは、sourceBuffer のモードが、 現在 'segments' に設定されている場合、'sequence' に設定します。 したがって、再生順序は、メディアセグメントを追加した順に設定されます。
js
const curMode = sourceBuffer.mode;
if (curMode === 'segments') {
sourceBuffer.mode = 'sequence';
}
仕様書
| Specification |
|---|
| Media Source Extensions™ # dom-sourcebuffer-mode |
ブラウザーの互換性
BCD tables only load in the browser