Estoy trabajando en una aplicación de videollamadas usando React y stanza.io . Cuando llamo uno a uno, todo funciona bien, pero cuando agrego un tercer par, el segundo y el tercer par dejan de enviar cuadros de video solo al primer par ( captura de pantalla interna de chrome webrtc ), y las pistas de video se silencian aunque el el estado de todas las conexiones entre pares es "conectado". tenga en cuenta que los flujos funcionan bien entre el segundo y el tercer par y ambos reciben el flujo del primer par.
Función para hacer llamadas:
public async addPeerToCall(jid: string, localStream: MediaStream | null) { const stream = localStream if (!stream) return; const session = this.user.jingle.createMediaSession(jid); stream.getTracks().forEach(async (track) => { await session .addTrack(track, stream); }); await session.start(); }Oyente de eventos de llamadas entrantes:
private incomingCall() { this.user.jingle.on( 'incoming', async (session: XMPP.Jingle.MediaSession) => { try { for (const track of stream.getTracks()) { await session.addTrack(track, stream); } await session.accept(); } catch (error) { console.log('incomingCall error', error); } } ); }Escucha de eventos de recepción de pistas:
this.user.jingle.on( 'peerTrackAdded', ( session: XMPP.Jingle.MediaSession, track: MediaStreamTrack, stream: MediaStream ) => { if (track.kind === 'video') { Streams.addRemoteStream({ stream, peerJID: session.peerID }); } } );