بدء البث عن بُعد

بعد توصيل 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;
});