MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

MediaSource.duration

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

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

語法

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 所編纂的簡單範例(觀看實際演示,或者下載原始碼以利更進一步研究。)

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);
  });
};

...

規格

規格 狀態 注釋
Media Source Extensions
The definition of 'duration' in that specification.
Candidate Recommendation Initial definition.

相容性表格

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 23 (Yes) 25.0 (25.0)[1]
42.0 (42.0)
11[2] 15 8
Feature Android Edge Firefox Mobile (Gecko) Firefox OS (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support 4.4.4 (Yes)

No support

No support 11 30 No support

[1] 在切換 about:config 偏好設定 media.mediasource.enabledtrue時可以使用。此外,支援只限於白名單內的網站,如:YouTube, Netflix, 以及其他熱門的串流網站。白名單已經被移除且 Media Source Extensions 在 42+ 對所有網站已預設為啟用。

[2] 只在 Windows 8+ 上有效。

相關資料

文件標籤與貢獻者

 此頁面的貢獻者: aChinKaiWu
 最近更新: aChinKaiWu,