--- title: MediaSource.duration slug: Web/API/MediaSource/duration translation_of: Web/API/MediaSource/duration ---
{{domxref("MediaSource")}} 介面的 duration
屬性用來取得以及設置正被表示的媒體時間長度。
mediaSource.duration = 5.5; // 5.5 seconds var myDuration = mediaSource.duration;
單位為秒的 double 型別。
當設置此屬性一個新的值時以下錯誤可能發生。
錯誤 | 解釋 |
---|---|
InvalidAccessError |
嘗試設置的時間長度是負值,或者 NaN 。 |
InvalidStateError |
{{domxref("MediaSource.readyState")}} 不是 open ,或者 {{domxref("MediaSource.sourceBuffers")}} 中一個或多個以上的 {{domxref("SourceBuffer")}} 物件正在被更新(例如:他們的 {{domxref("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);
});
};
...
規格 | 狀態 | 注釋 |
---|---|---|
{{SpecName('Media Source Extensions', '#widl-MediaSource-duration', 'duration')}} | {{Spec2('Media Source Extensions')}} | Initial definition. |
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | 23 | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("25.0")}}[1] {{CompatGeckoDesktop("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 | {{CompatVersionUnknown}} |
{{CompatNo}} |
{{CompatNo}} | 11 | 30 | {{CompatNo}} |
[1] 在切換 about:config
偏好設定 media.mediasource.enabled
為 true
時可以使用。此外,支援只限於白名單內的網站,如:YouTube, Netflix, 以及其他熱門的串流網站。白名單已經被移除且 Media Source Extensions 在 42+ 對所有網站已預設為啟用。
[2] 只在 Windows 8+ 上有效。