Una vez que un RTCPeerConnection
se conecta a un par remoto, es posible transmitir audio y video entre ellos. Este es el punto en el que conectamos el flujo que recibimos de getUserMedia()
al RTCPeerConnection
. Una transmisión multimedia consiste en al menos una pista multimedia, que se agrega individualmente a la RTCPeerConnection
cuando queremos transmitir el contenido multimedia al par remoto.
const localStream = await getUserMedia({vide: true, audio: true});
const peerConnection = new RTCPeerConnection(iceConfig);
localStream.getTracks().forEach(track => {
peerConnection.addTrack(track, localStream);
});
Se pueden agregar segmentos a un objeto RTCPeerConnection
antes de que se conecte a un par remoto, por lo que tiene sentido realizar esta configuración lo antes posible en lugar de esperar a que se complete la conexión.
Cómo agregar segmentos remotos
Para recibir las pistas remotas que agregó el otro par, registramos un objeto de escucha en el RTCPeerConnection
local que escucha el evento track
. RTCTrackEvent
contiene un array de objetos MediaStream
que tienen los mismos valores de MediaStream.id
que los flujos locales correspondientes. En nuestro ejemplo, cada pista se asocia a una sola transmisión.
Ten en cuenta que, si bien los ID de MediaStream
coinciden en ambos lados de la conexión de intercambio de tráfico, generalmente no ocurre lo mismo con los ID de MediaStreamTrack
.
const remoteVideo = document.querySelector('#remoteVideo');
peerConnection.addEventListener('track', async (event) => {
const [remoteStream] = event.streams;
remoteVideo.srcObject = remoteStream;
});