Bắt đầu sử dụng tính năng phát trực tiếp từ xa

Sau khi kết nối RTCPeerConnection với một ứng dụng ngang hàng từ xa, bạn có thể phát trực tuyến âm thanh và video giữa chúng. Đây là điểm kết nối luồng mà chúng tôi nhận được từ getUserMedia() đến RTCPeerConnection. Nội dung nghe nhìn luồng chứa ít nhất một bản nhạc nội dung nghe nhìn và các bản nhạc này được thêm riêng vào RTCPeerConnection khi chúng ta muốn truyền nội dung đa phương tiện đến điều khiển từ xa ứng dụng ngang hàng.

const localStream = await getUserMedia({video: true, audio: true});
const peerConnection = new RTCPeerConnection(iceConfig);
localStream.getTracks().forEach(track => {
    peerConnection.addTrack(track, localStream);
});

Bạn có thể thêm các tuyến đường vào RTCPeerConnection trước khi kết nối với một điều khiển từ xa ứng dụng ngang hàng, vì vậy bạn nên thực hiện thiết lập này càng sớm càng tốt đang chờ kết nối hoàn tất.

Thêm bản nhạc từ xa

Để nhận các kênh từ xa do ứng dụng ngang hàng khác thêm vào, chúng tôi đăng ký trình nghe trên RTCPeerConnection cục bộ đang theo dõi sự kiện track. Chiến lược phát hành đĩa đơn RTCTrackEvent chứa một mảng các đối tượng MediaStream có cùng Giá trị MediaStream.id làm luồng cục bộ tương ứng của ứng dụng ngang hàng. Trong Ví dụ: mỗi bản nhạc chỉ được liên kết với một luồng duy nhất.

Xin lưu ý rằng mặc dù mã nhận dạng MediaStream khớp với cả hai phía của kết nối ngang hàng, điều này thường không đúng đối với mã nhận dạng MediaStreamTrack.

const remoteVideo = document.querySelector('#remoteVideo');

peerConnection.addEventListener('track', async (event) => {
    const [remoteStream] = event.streams;
    remoteVideo.srcObject = remoteStream;
});