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;
});