Una vez que un RTCPeerConnection
está conectado a un par remoto, es posible transmitir audio y vídeo entre ellos. Este es el punto donde conectamos la corriente que recibimos de getUserMedia()
a la RTCPeerConnection
. Un flujo de medios consta de al menos una pista de los medios de comunicación, y estos se añaden individualmente al RTCPeerConnection
cuando queremos transmitir a los medios a la par remoto.
const localStream = await getUserMedia({vide: true, audio: true});
const peerConnection = new RTCPeerConnection(iceConfig);
localStream.getTracks().forEach(track => {
peerConnection.addTrack(track, localStream);
});
Las pistas pueden ser añadidos a una RTCPeerConnection
antes de que haya conectado a un par remoto, así que tiene sentido para llevar a cabo esta configuración tan pronto como sea posible en lugar de esperar a que se complete la conexión.
Agregar pistas remotas
Para recibir las pistas remotas que fueron añadidos por el otro par, se registra un oyente en el local de RTCPeerConnection
de escucha para el track
de eventos. El RTCTrackEvent
contiene una matriz de MediaStream
objetos que tienen los mismos MediaStream.id
valores como correspondientes corrientes locales de los pares. En nuestro ejemplo, cada pista solo está asociada con una única secuencia.
Tenga en cuenta que mientras MediaStream
identificaciones coincide en ambos lados de la conexión entre pares, el mismo no es generalmente cierto para MediaStreamTrack
identificaciones.
const remoteVideo = document.querySelector('#remoteVideo');
peerConnection.addEventListener('track', async (event) => {
const [remoteStream] = event.streams;
remoteVideo.srcObject = remoteStream;
});