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

js
setStreams()
setStreams(mediaStream1)
setStreams(mediaStream1, mediaStream2)
setStreams(mediaStream1, mediaStream2, /* …, */ mediaStreamN)

Tham số

mediaStreamN Optional

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à track của RTCRtpSender thuộ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ệ

InvalidStateError DOMException

Đượ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.

js
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

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