Cómo comenzar a usar las transmisiones remotas

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({video: 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;
});