MediaSource.duration
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
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.)
function sourceOpen (_) {
//console.log(this.readyState); // open
var mediaSource = this;
var sourceBuffer = mediaSource.addSourceBuffer(mimeCodec);
fetchAB(assetURL, function (buf) {
sourceBuffer.addEventListener('updateend', function (_) {
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