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.
InvalidAccessErrorDOMException-
Thrown if an attempt was made to set a duration value that was negative or
NaN. InvalidStateErrorDOMException-
Thrown if
MediaSource.readyStateis not equal toopen, or one or more of theSourceBufferobjects inMediaSource.sourceBuffersare being updated (i.e. theirSourceBuffer.updatingproperty 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