Limited availability
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.
A double. A value in seconds is expected.
ExceptionsThe 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 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 Browser compatibility See also
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4