Phương thức setStreams() của RTCRtpSender
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since May 2023.
Phương thức setStreams() của RTCRtpSender liên kết track của sender với các đối tượng MediaStream được chỉ định.
Cú pháp
setStreams()
setStreams(mediaStream1)
setStreams(mediaStream1, mediaStream2)
setStreams(mediaStream1, mediaStream2, /* …, */ mediaStreamN)
Tham số
mediaStreamNOptional-
Một số tùy ý các đối tượng
MediaStreamđược chỉ định làm đối số, xác định các luồng màtrackcủaRTCRtpSenderthuộc về. Nếu tham số này không được chỉ định, không có luồng mới nào sẽ được liên kết với track.
Giá trị trả về
Không có (undefined).
Ngoại lệ
InvalidStateErrorDOMException-
Được ném ra nếu kết nối của sender đã đóng.
Mô tả
setStreams() hoàn toàn có tính chất bổ sung. Phương thức này không xóa track khỏi bất kỳ luồng nào; nó thêm track vào các luồng mới.
Nếu bạn chỉ định các luồng mà track đã thuộc về, luồng đó không bị ảnh hưởng.
Sau khi track đã được thêm vào tất cả các luồng, việc đàm phán lại kết nối sẽ được kích hoạt bởi sự kiện negotiationneeded được gửi đến RTCPeerConnection mà sender thuộc về.
Ví dụ
Ví dụ này thêm tất cả các track của một RTCPeerConnection vào luồng được chỉ định.
function addTracksToStream(stream) {
let senders = pc.getSenders();
senders.forEach((sender) => {
if (sender.track && sender.transport.state === connected) {
sender.setStreams(stream);
}
});
}
Sau khi gọi phương thức RTCPeerConnection getSenders() để lấy danh sách các sender của kết nối, hàm addTracksToStream() lặp qua danh sách.
Đối với mỗi sender, nếu track của sender khác null và trạng thái transport của sender là connected, chúng ta gọi setStreams() để thêm track vào stream được chỉ định.
Đặc tả kỹ thuật
| Thông số kỹ thuật |
|---|
| WebRTC: Real-Time Communication in Browsers> # dom-rtcrtpsender-setstreams> |