Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

144
Views
Problemas de audio de Webrtc al iniciar la conexión desde el escritorio al móvil

Estoy creando una aplicación web usando webrtc que permite que dos usuarios se comuniquen entre sí usando video y audio. La aplicación utiliza node.js como servidor de señalización. La aplicación funciona bien cuando se comunica entre dos escritorios, pero cuando pruebo una comunicación de escritorio a móvil, si el usuario que inicia la oferta es el que está en el escritorio, el que está en el móvil no puede escuchar ningún sonido. Si sucede al revés, ambos tienen audio. Cuando compruebo las devtools, el flujo de audio se envía desde el escritorio y lo recibe el móvil (está activo y no silenciado), pero no hay sonido. Uso el elemento de audio para reproducir la transmisión de audio y el elemento de video para reproducir la transmisión de video. He probado esto tanto en Chrome como en Mozilla y me encuentro con el mismo problema.

Si alguien puede ayudar, sería muy apreciado.

A continuación se muestran ejemplos de código del evento en pista

 rtcConnection.ontrack = function(event) { console.log('Remote stream received.'); if(event.streams[0].getAudioTracks().length > 0) { event.streams[0].getAudioTracks().forEach((track) => { remoteAudioStream .addTrack(track); }); audioPlayer.srcObject = remoteAudioStream; } if (event.streams[0].getVideoTracks().length > 0){ event.streams[0].getVideoTracks().forEach((track) => { remoteVideoStream .addTrack(track); }); localVideo.srcObject = remoteVideoStream; } };

y el flujo de medios de captura:

 function getUserMedia() { let getAudio = true; let getVideo = true; let constraints = { audio: getAudio, video: getVideo }; navigator.mediaDevices.getUserMedia(constraints) // Ask user to allow access to his media devices .then( function(data) { //if yes, get stream config data and join room localStream = data; console.log('Getting user media succeeded.'); console.log('RTC Connection created. Getting user media. Adding stream tracks to RTC connection'); sendMessage({ type: 'peermessage', messagetype:'info', messagetext: 'Peer started video streaming.'}); //stream to be sent to the other user localStream.getTracks().forEach(track => rtcConnection.addTrack(track, localStream)); console.log('Creating offer'); rtcConnection.createOffer() .then(function(offer) { // createOffer success console.log('Offer created. Setting it as local description'); return rtcConnection.setLocalDescription(offer); }, logError) // createOffer error .then(function() { // setLocalDescription success console.log('Offer set as local description. Sending it to agent'); sendMessage(rtcConnection.localDescription) }, logError); // setLocalDescription error } );

}

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!