此頁面由社群從英文翻譯而來。了解更多並加入 MDN Web Docs 社群。

View in English Always switch to English

MediaSource.duration

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

實驗性質: 這是一個實驗中的功能
此功能在某些瀏覽器尚在開發中,請參考兼容表格以得到不同瀏覽器用的前輟。

MediaSource 介面的 duration 屬性用來取得以及設置正被表示的媒體時間長度。

語法

js
mediaSource.duration = 5.5; // 5.5 seconds

var myDuration = mediaSource.duration;

回傳值

單位為秒的 double 型別。

錯誤

當設置此屬性一個新的值時以下錯誤可能發生。

錯誤 解釋
InvalidAccessError 嘗試設置的時間長度是負值,或者 NaN
InvalidStateError MediaSource.readyState 不是 open,或者 MediaSource.sourceBuffers 中一個或多個以上的 SourceBuffer 物件正在被更新(例如:他們的 SourceBuffer.updating 屬性為 true。)

範例

以下的片段基於 Nick Desaulniers 所編纂的簡單範例(觀看實際演示,或者下載原始碼以利更進一步研究。)

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

...

規格

Specification
Media Source Extensions™
# dom-mediasource-duration

相容性表格

相關資料