Memulai streaming jarak jauh

Setelah RTCPeerConnection terhubung ke peer jarak jauh, Anda dapat menstreaming audio dan video di antara keduanya. Di sinilah kita menghubungkan streaming yang kita terima dari getUserMedia() ke RTCPeerConnection. Streaming media terdiri dari minimal satu trek media, dan masing-masing ditambahkan 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 sebaiknya lakukan penyiapan ini sedini mungkin, bukan menunggu koneksi selesai.

Menambahkan jalur jarak jauh

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

Perhatikan 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;
});