MediaSource: duration プロパティ

durationMediaSource インターフェイスのプロパティで、現在表示されているメディアの期間(長さ)を取得および設定します。

double 型。 秒単位の値が必要です。

例外

このプロパティに新しい値を設定すると、次の例外が発生する場合があります。

InvalidAccessError DOMException

負の値または NaN である再生時間の値を設定しようとした場合に発生します。

InvalidStateError DOMException

MediaSource.readyStateopen に等しくないか、 MediaSource.sourceBuffers内のSourceBuffer オブジェクトが 1 つ以上更新されている(つまり、 SourceBuffer.updating プロパティが true である)場合に発生します。

次のスニペットは、Nick Desaulniers によって書かれた簡単な例に基づいています(ライブで完全なデモを見るか、ソースをダウンロードしてさらに調査してください)。ここでは定義されていませんが、関数 getMediaSource()MediaSource を返します。

js
const mediaSource = getMediaSource();

function sourceOpen() {
  console.log(this.readyState); // open
  const sourceBuffer = mediaSource.addSourceBuffer(mimeCodec);
  fetchAB(assetURL, (buf) => {
    sourceBuffer.addEventListener("updateend", () => {
      mediaSource.endOfStream();
      mediaSource.duration = 120;
      video.play();
      console.log(mediaSource.readyState); // ended
    });
    sourceBuffer.appendBuffer(buf);
  });
}

// …

仕様書

Specification
Media Source Extensions™
# dom-mediasource-duration

ブラウザーの互換性

BCD tables only load in the browser

関連情報