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ượng SourceBuffer.
  • ended: Nguồn được gắn vào media element nhưng luồng đã kết thúc thông qua lời gọi MediaSource.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

Tương thích trình duyệt

Xem thêm