MediaSource: duration 属性
注意:此功能在 专用 Web Workers 中可用。
MediaSource 接口的 duration 属性用于获取和设置当前正在播放的媒体的时长。
值
一个双精度浮点数。期望的值单位为秒。
异常
设置此属性的新值时,可能会抛出以下异常。
InvalidAccessErrorDOMException-
如果尝试设置一个负值或
NaN时长值,则会抛出此异常。 InvalidStateErrorDOMException-
如果
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 |
浏览器兼容性
加载中…