MediaSource: duration 屬性

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

注意:此功能在 專用 Web Workers 中可用。

MediaSource 介面的 duration 屬性用於獲取和設定當前正在播放的媒體的時長。

一個雙精度浮點數。期望的值單位為秒。

異常

設定此屬性的新值時,可能會丟擲以下異常。

InvalidAccessError DOMException

如果嘗試設定一個負值或 NaN 時長值,則會丟擲此異常。

InvalidStateError DOMException

如果 MediaSource.readyState 不等於 open,或者 MediaSource.sourceBuffers 中的一個或多個 SourceBuffer 物件正在被更新(即,它們的 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);
  });
}

// …

規範

規範
Media Source Extensions™
# dom-mediasource-duration

瀏覽器相容性

另見