אחרי שמחברים את RTCPeerConnection
לאפליקציה מרוחקת, אפשר
לשדר אודיו ווידאו ביניהם. כאן אנחנו מחברים את
שאנחנו מקבלים מ-getUserMedia()
אל RTCPeerConnection
. מדיה
זרם נתונים אחד לפחות מורכב מטראק מדיה אחד, וכל אחד מהם מתווסף בנפרד
אל RTCPeerConnection
כשנרצה לשדר את המדיה לשלט הרחוק
אפליקציה להשוואה.
const localStream = await getUserMedia({video: true, audio: true});
const peerConnection = new RTCPeerConnection(iceConfig);
localStream.getTracks().forEach(track => {
peerConnection.addTrack(track, localStream);
});
אפשר להוסיף טראקים אל מכשיר RTCPeerConnection
לפני שהוא מתחבר לשלט רחוק
לכן הגיוני לבצע את ההגדרה הזו בהקדם האפשרי
ממתין להשלמת החיבור.
הוספת מסלולים מרוחקים
כדי לקבל את המסלולים המרוחקים שנוספו על ידי העמית השני, אנחנו מתעדים
מאזין בRTCPeerConnection
המקומי של האירוע track
.
RTCTrackEvent
מכיל מערך של MediaStream
אובייקטים בעלי אותם
MediaStream.id
ערכים כשידורים המקומיים התואמים של האפליקציה להשוואה. ב
למשל, כל טראק משויך רק לזרם אחד.
חשוב לשים לב שלמרות ש-MediaStream
מזהים תואמים משני הצדדים של החיבור בין האפליקציות,
בדרך כלל, אותו הדבר לא נכון לגבי מזהי MediaStreamTrack
.
const remoteVideo = document.querySelector('#remoteVideo');
peerConnection.addEventListener('track', async (event) => {
const [remoteStream] = event.streams;
remoteVideo.srcObject = remoteStream;
});