شروع به کار با جریان های راه دور

هنگامی که یک 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;
});