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