תחילת העבודה עם שידורים מרוחקים

אחרי שמחברים את 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;
});