MediaStreamTrack: phương thức stop()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2017.

Phương thức stop() của giao diện MediaStreamTrack dừng track.

Cú pháp

js
stop()

Tham số

Không có.

Giá trị trả về

Không có (undefined).

Mô tả

Gọi stop() báo cho user agent biết rằng nguồn của track—dù nguồn đó là gì, bao gồm tệp, luồng mạng, hoặc máy ảnh hay micro cục bộ—không còn cần thiết bởi MediaStreamTrack. Vì nhiều track có thể sử dụng cùng một nguồn (ví dụ: nếu hai tab đang sử dụng micro của thiết bị), bản thân nguồn không nhất thiết phải dừng ngay lập tức. Thay vào đó, nó bị ngắt kết nối khỏi track và đối tượng track được dừng. Khi không còn track phương tiện nào sử dụng nguồn, nguồn đó có thể thực sự bị dừng hoàn toàn.

Ngay sau khi gọi stop(), thuộc tính readyState được đặt thành ended. Lưu ý rằng sự kiện ended sẽ không được kích hoạt trong tình huống này.

Ví dụ

Dừng một luồng video

Trong ví dụ này, chúng ta thấy một hàm dừng một luồng video bằng cách gọi stop() trên mọi track của một <video> nhất định.

js
function stopStreamedVideo(videoElem) {
  const stream = videoElem.srcObject;
  const tracks = stream.getTracks();

  tracks.forEach((track) => {
    track.stop();
  });

  videoElem.srcObject = null;
}

Điều này hoạt động bằng cách lấy luồng của phần tử video từ thuộc tính srcObject của nó. Sau đó, danh sách track của luồng được lấy bằng cách gọi phương thức getTracks() của nó. Từ đó, tất cả những gì còn lại là lặp qua danh sách track bằng forEach() và gọi phương thức stop() của mỗi track.

Cuối cùng, srcObject được đặt thành null để ngắt liên kết đến đối tượng MediaStream để nó có thể được giải phóng.

Đặc tả kỹ thuật

Specification
Media Capture and Streams
# dom-mediastreamtrack-stop

Hỗ trợ trình duyệt

Xem thêm