The duration
property of the MediaSource
interface gets and sets the duration of the current media being presented.
A double. A value in seconds is expected.
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 to open
, or one or more of the SourceBuffer
objects in MediaSource.sourceBuffers
are being updated (i.e. their SourceBuffer.updating
property is true
.)
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 (_) {
var mediaSource = this;
var sourceBuffer = mediaSource.addSourceBuffer(mimeCodec);
fetchAB(assetURL, function (buf) {
sourceBuffer.addEventListener('updateend', function (_) {
mediaSource.endOfStream();
mediaSource.duration = 120;
video.play();
});
sourceBuffer.appendBuffer(buf);
});
};
...