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