SourceBuffer: phương thức hủy bỏ()

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.

Phương thức abort() của SourceBuffer giao diện hủy bỏ phân đoạn hiện tại và đặt lại trình phân tích cú pháp phân đoạn.

Cú pháp

js
abort()

Thông số

Không.

Giá trị trả về

Không có (undefined).

Ngoại lệ

InvalidStateError DOMException

Bị ném nếu thuộc tính MediaSource.readyState của

nguồn phương tiện gốc không bằng open hoặc điều này SourceBuffer đã bị xóa khỏi MediaSource.

Ví dụ

Mô tả thông số kỹ thuật của abort() hơi khó hiểu — hãy xem xét ví dụ bước 1 của đặt lại trạng thái trình phân tích cú pháp. API MSE hoàn toàn không đồng bộ, nhưng bước này dường như gợi ý một hoạt động đồng bộ (chặn), điều này không có ý nghĩa gì.

Nói như vậy, việc triển khai hiện tại có thể hữu ích trong một số trường hợp nhất định, khi bạn muốn để dừng hoạt động nối thêm (hoặc bất cứ điều gì) hiện tại xảy ra trên bộ đệm nguồn, sau đó ngay lập tức bắt đầu thực hiện lại các thao tác trên nó. Ví dụ: hãy xem xét mã này:

js
sourceBuffer.addEventListener("updateend", (ev) => {
  // …
});

sourceBuffer.appendBuffer(buf);

Giả sử rằng sau lệnh gọi tới appendBuffer NHƯNG trước Sự kiện updateend kích hoạt (nghĩa là bộ đệm đang được thêm vào nhưng thao tác

chưa hoàn thành) người dùng "chà" video để tìm kiếm một thời điểm mới. trong trường hợp này bạn sẽ muốn gọi thủ công abort() trên bộ đệm nguồn để dừng giải mã bộ đệm hiện tại, sau đó tìm nạp và nối thêm bộ đệm mới được yêu cầu

phân đoạn liên quan đến vị trí mới hiện tại của video.

Thông số kỹ thuật

Specification
Media Source Extensions™
# dom-sourcebuffer-abort

Khả năng tương thích của trình duyệt

Xem thêm