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