MediaSource: duration property
The duration
property of the MediaSource
interface gets and sets the duration of the current media being presented.
Value
A double. A value in seconds is expected.
Exceptions
The following exceptions may be thrown when setting a new value for this property.
InvalidAccessError
DOMException
-
Thrown if an attempt was made to set a duration value that was negative or
NaN
. InvalidStateError
DOMException
-
Thrown if
MediaSource.readyState
is not equal toopen
, or one or more of theSourceBuffer
objects inMediaSource.sourceBuffers
are being updated (i.e. theirSourceBuffer.updating
property istrue
.)
Examples
The following snippet is based on a simple example written by Nick Desaulniers (view the full demo live, or download the source for further investigation). The function getMediaSource()
, which is not defined here, returns a 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);
});
}
// …
Specifications
Specification |
---|
Media Source Extensions™ # dom-mediasource-duration |
Browser compatibility
BCD tables only load in the browser