بمجرد توصيل RTCPeerConnection
بعيد ، من الممكن دفق الصوت والفيديو بينهما. هذه هي النقطة التي نقوم فيها بتوصيل الدفق الذي نتلقاه من getUserMedia()
إلى RTCPeerConnection
. يتكون دفق الوسائط من مسار وسائط واحد على الأقل ، ويتم إضافتها بشكل فردي إلى RTCPeerConnection
عندما نريد نقل الوسائط إلى النظير البعيد.
const localStream = await getUserMedia({vide: true, audio: true});
const peerConnection = new RTCPeerConnection(iceConfig);
localStream.getTracks().forEach(track => {
peerConnection.addTrack(track, localStream);
});
يمكن إضافة المسارات إلى RTCPeerConnection
قبل أن يتصل RTCPeerConnection
بعيد ، لذلك من المنطقي إجراء هذا الإعداد في أقرب وقت ممكن بدلاً من انتظار اكتمال الاتصال.
إضافة مسارات بعيدة
لاستلام المسارات البعيدة التي أضافها النظير الآخر ، نسجل مستمعًا على RTCPeerConnection
المحلي يستمع لحدث track
. نظرًا لأن التشغيل يتم على كائن MediaStream
، فإننا ننشئ أولاً MediaStream
فارغًا ثم نملأه بالمسارات من النظير البعيد عند استلامنا لها.
const remoteStream = MediaStream();
const remoteVideo = document.querySelector('#remoteVideo');
remoteVideo.srcObject = remoteStream;
peerConnection.addEventListener('track', async (event) => {
remoteStream.addTrack(event.track, remoteStream);
});