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
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.
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
MediaStreamTrack, giao diện mà nó thuộc về.MediaStreamTrack.readyStateended