MediaSource:readyState 属性
readyState
是 MediaSource
接口的只读属性,它返回一个枚举值,表示当前 MediaSource
的状态。三个可能的值是
closed
:源当前未附加到媒体元素。-
open
:源已附加到媒体元素,并已准备好接收SourceBuffer
对象。 -
ended
:源已附加到媒体元素,但流已通过调用MediaSource.endOfStream()
结束。
值
字符串。
示例
以下代码段来自 Nick Desaulniers 编写的简单示例(查看完整的演示,或 下载源代码 以进行进一步调查)。函数 getMediaSource()
(此处未定义)返回一个 MediaSource
。
js
let mediaSource;
if ("MediaSource" in window && MediaSource.isTypeSupported(mimeCodec)) {
mediaSource = getMediaSource();
console.log(mediaSource.readyState); // closed
video.src = URL.createObjectURL(mediaSource);
mediaSource.addEventListener("sourceopen", sourceOpen);
} else {
console.error("Unsupported MIME type or codec: ", mimeCodec);
}
function sourceOpen() {
console.log(this.readyState); // open
const sourceBuffer = mediaSource.addSourceBuffer(mimeCodec);
fetchAB(assetURL, (buf) => {
sourceBuffer.addEventListener("updateend", () => {
mediaSource.endOfStream();
video.play();
console.log(mediaSource.readyState); // ended
});
sourceBuffer.appendBuffer(buf);
});
}
规范
规范 |
---|
媒体源扩展™ # dom-mediasource-readystate |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。