Red de conocimientos turísticos - Información de alquiler - ¿Es posible implementar transmisión en vivo interactiva utilizando WebRTC JS?

¿Es posible implementar transmisión en vivo interactiva utilizando WebRTC JS?

Sí, se puede lograr una transmisión interactiva en vivo usando WebRTC JS:

// Crear transmisión de video local

navigator.mediaDevices.getUserMedia({ video: true, audio: true })

.then(function( secuencia) {

var localVideo = document.getElementById('localVideo');

localVideo.srcObject = secuencia;

})

.catch( function(error) {

console.log('Error al acceder a dispositivos multimedia: ' + error.message);

});

//Crear objeto PeerConnection y conexión de socket

var pc = new RTCPeerConnection();

var socket = io() ;

//Escuche los eventos de los candidatos de ICE para enviárselos entre sí

pc.onicecandate = function(event) {

if (event.candidate) {

p>

socket.emit('iceCandidate', event.candidate);

}

};

// Escuche el evento de transmisión de video remoto para mostrar en la página

c.ontrack = function(event) {

if ( event.ontrack = function(event) {

var remoteVideo = document.getElementById('remoteVideo');

if (!remoteVideo.srcObject) {

remoteVideo.streams[0];

}

};

// Crea una oferta y envíala a la otra parte

pc.createOffer()

.then(function (oferta) {

return pc.setLocalDescription(oferta);

})

.then(function() {

socket .emit('oferta ', pc.localDescription);

})

.catch(function(error) {

console.log('Creación de error oferta: ' + error .message);

});

//Escuche los eventos de socket y procese la oferta y los candidatos ICE de cada uno

socket.on ('oferta ', función(oferta) {

pc.setRemoteDescription(error) {

//c.setRemoteDescription(error) {

//c .setRemo

teDescription(error)setRemoteDescription(oferta)

.then(function() {

return navigator. mediaDevices.getUserMedia({ video: true, audio: true });

})

.then(function(stream) {

stream.getTracks().forEach( function(track) {

pc. addTrack(pista, transmisión);

});

})

.then(function() {

return pc. createAnswer();

})

.then(function(respuesta) {

return pc.setLocalDescription(respuesta);

})

.then(function() {

socket.emit(' respuesta', pc.localDescription);

})

.catch(function(error) {

console.log('Error al responder: ' + error.message);

});

} );

socket.on('respuesta', función(respuesta) {

pc.setRemoteDescription(respuesta)

.catch(función(error) {

console.log('Error al configurar la descripción remota: ' + error.message);

});

});

socket.on('iceCandidate', function(candidato) {

pc.addIceCandidate(candidato)

.catch(function(error) {

consola .log('Error al agregar candidato ICE: ' + error.message);<

});

});

donde `localVideo` y ` remoteVideo` es el elemento de etiqueta \