RTCPeerConnection
, uzak bir benzere bağlandığında aralarında ses ve video akışı yapılabilir. Bu aşamada, getUserMedia()
tarafından aldığımız akışı RTCPeerConnection
ile birleştiririz. Medya akışı, en az bir medya kanalından oluşur ve medyayı uzaklar arasına aktarmak istediğimizde bunlar RTCPeerConnection
öğesine tek tek eklenir.
const localStream = await getUserMedia({video: true, audio: true});
const peerConnection = new RTCPeerConnection(iceConfig);
localStream.getTracks().forEach(track => {
peerConnection.addTrack(track, localStream);
});
RTCPeerConnection
bir uzaktan kumandaya bağlanmadan önce parçalar eklenebilir. Bu nedenle, bağlantının tamamlanmasını beklemek yerine bu kurulumu mümkün olduğunca erken gerçekleştirmeniz önerilir.
Uzaktan parça ekleme
Diğer eş tarafından eklenen uzak parçaları almak için yerel RTCPeerConnection
üzerinde track
etkinliğini dinleyen bir işleyici kaydederiz. RTCTrackEvent
, benzerin yerel akışlarıyla aynı MediaStream.id
değerlerine sahip olan MediaStream
nesnelerinden oluşan bir dizi içerir. Örneğimizde her kanal yalnızca tek bir akışla ilişkilendirilir.
MediaStream
kimliklerinin eşler arası bağlantının her iki tarafıyla da eşleştiğini ancak MediaStreamTrack
kimlikleri için genellikle aynının geçerli olmadığını unutmayın.
const remoteVideo = document.querySelector('#remoteVideo');
peerConnection.addEventListener('track', async (event) => {
const [remoteStream] = event.streams;
remoteVideo.srcObject = remoteStream;
});