Bir RTCPeerConnection
uzak bir eşe bağlandıktan sonra, aralarında ses ve video aktarımı yapılabilir. Bu noktada, getUserMedia()
'ten aldığımız yayını RTCPeerConnection
'a bağlarız. Medya akışı en az bir medya kanalından oluşur ve medyayı uzaktaki eşe aktarmak istediğimizde bunlar RTCPeerConnection
'e tek tek eklenir.
const localStream = await getUserMedia({video: true, audio: true});
const peerConnection = new RTCPeerConnection(iceConfig);
localStream.getTracks().forEach(track => {
peerConnection.addTrack(track, localStream);
});
Parçalar, uzak bir eşe bağlanmadan önce RTCPeerConnection
'e eklenebilir. Bu nedenle, bağlantının tamamlanmasını beklemek yerine bu kurulumu mümkün olduğunca erken yapmak mantıklıdır.
Uzaktan parça ekleme
Diğer eş tarafından eklenen uzak parçaları almak için yerel RTCPeerConnection
üzerinde track
etkinliğini dinleyen bir dinleyici kaydederiz. RTCTrackEvent
, eşlemenin karşılık gelen yerel akışlarıyla aynı MediaStream.id
değerlerine sahip bir MediaStream
nesnesi dizisi içerir. Örneğimizde her kanal yalnızca tek bir akışla ilişkilendirilmiştir.
MediaStream
kimlikleri eş eş bağlantısının her iki tarafında da eşleşse de MediaStreamTrack
kimlikleri için genellikle aynı durumun geçerli olmadığını unutmayın.
const remoteVideo = document.querySelector('#remoteVideo');
peerConnection.addEventListener('track', async (event) => {
const [remoteStream] = event.streams;
remoteVideo.srcObject = remoteStream;
});