MediaSource:duration 属性

duration 属性是 MediaSource 接口的一个属性,用于获取和设置当前正在呈现的媒体的时长。

一个双精度浮点数。预期值为秒。

异常

设置此属性的新值时,可能会抛出以下异常。

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

// …

规范

规范
媒体源扩展™
# dom-mediasource-duration

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅