Memulai streaming jarak jauh

Setelah RTCPeerConnection terhubung ke peer jarak jauh, Anda dapat melakukan streaming audio dan video di antara keduanya. Ini adalah titik di mana kita menghubungkan aliran data yang kita terima dari getUserMedia() hingga RTCPeerConnection. Sebuah media streaming terdiri dari setidaknya satu trek media, dan trek tersebut akan ditambahkan satu per satu ke RTCPeerConnection saat kita ingin mentransmisikan media ke remote rekan sejawat.

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

Trek dapat ditambahkan ke RTCPeerConnection sebelum terhubung ke remote rekan Anda, jadi masuk akal untuk melakukan pengaturan ini sedini mungkin, daripada menunggu koneksi selesai.

Menambahkan trek jarak jauh

Untuk menerima trek jarak jauh yang ditambahkan oleh rekan lainnya, kita mendaftarkan pemroses di RTCPeerConnection lokal yang memproses peristiwa track. Tujuan RTCTrackEvent berisi array objek MediaStream yang memiliki elemen MediaStream.id sebagai streaming lokal yang sesuai milik pembanding. Di misalnya, setiap lagu hanya dikaitkan dengan satu streaming.

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