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