MediaSource: readyState property
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Note: This feature is available in Dedicated Web Workers.
Thuộc tính chỉ đọc readyState của giao diện MediaSource trả về một enum biểu thị trạng thái của MediaSource hiện tại. Ba giá trị có thể là:
closed: Nguồn hiện không được gắn vào media element.open: Nguồn được gắn vào media element và sẵn sàng nhận các đối tượngSourceBuffer.ended: Nguồn được gắn vào media element nhưng luồng đã kết thúc thông qua lời gọiMediaSource.endOfStream().
Giá trị
Một chuỗi.
Ví dụ
Đoạn code sau từ một ví dụ do Nick Desaulniers viết (xem demo trực tiếp đầy đủ, hoặc tải mã nguồn xuống để xem kỹ hơn). Hàm getMediaSource(), không được định nghĩa ở đây, trả về một 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);
});
}
Thông số kỹ thuật
| Specification |
|---|
| Media Source Extensions™> # dom-mediasource-readystate> |