Memulai streaming jarak jauh

Setelah RTCPeerConnection terhubung ke pembanding jarak jauh, Anda dapat melakukan streaming audio dan video di antara keduanya. Ini adalah titik tempat kita menghubungkan streaming yang kita terima dari getUserMedia() ke RTCPeerConnection. Aliran media terdiri dari setidaknya satu jalur media, dan ini ditambahkan secara terpisah ke RTCPeerConnection saat kita ingin mengirimkan media ke peer jarak jauh.

const localStream = await getUserMedia({video: true, audio: true});
const peerConnection = new RTCPeerConnection(iceConfig);
localStream.getTracks().forEach(track => {
    peerConnection.addTrack(track, localStream);
});

Jalur dapat ditambahkan ke RTCPeerConnection sebelum terhubung ke peer jarak jauh, jadi masuk akal untuk melakukan penyiapan ini sedini mungkin, bukan menunggu koneksi selesai.

Menambahkan trek jarak jauh

Untuk menerima trek jarak jauh yang ditambahkan oleh pembanding lain, kita mendaftarkan pemroses pada RTCPeerConnection lokal yang memproses peristiwa track. RTCTrackEvent berisi array objek MediaStream yang memiliki nilai MediaStream.id yang sama dengan aliran data lokal pembanding yang sesuai. Dalam contoh kami, setiap jalur hanya dikaitkan dengan satu aliran data.

Perlu diperhatikan bahwa meskipun ID MediaStream cocok di kedua sisi koneksi peer, hal yang sama umumnya tidak berlaku untuk ID MediaStreamTrack.

const remoteVideo = document.querySelector('#remoteVideo');

peerConnection.addEventListener('track', async (event) => {
    const [remoteStream] = event.streams;
    remoteVideo.srcObject = remoteStream;
});