MediaSource: duration property
Note: This feature is available in Dedicated Web Workers.
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 an 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
.
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