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

142
Views
Los candidatos de ICE no generan en Android 11 Chrome en algunos dispositivos

Al probar WebRTC, descubrí que está creando problemas en algunos dispositivos Android que tienen Android 11 (principalmente Samsung, Vivo) en Chrome. Sin embargo, funciona bien en Firefox en el mismo dispositivo. Probé en Samsung Galaxy A03s (SM-A037F).

Intenté esto: https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/ En Chrome, los candidatos no se reúnen, pero en Firefox, los candidatos se reúnen.

Encontré un error similar en el rastreador de errores de Chromium: https://bugs.chromium.org/p/chromium/issues/detail?id=1115498 Aún parece que el problema no está solucionado.

¿Cómo podemos hacer que funcione en el navegador Chrome? Por favor ayuda.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

El mismo problema. Si intenta establecer iceCandidatePoolSize = 10 en la configuración de RTCPeerConnection, onicecandidate se activa una vez con un candidato vacío, iceConnectionState cambia al estado conectado.

Luego observo los transceptores pc.getTransceivers()[0].sender.transport.iceTransport

meetingState: estado "completo": "conectado"

pc.getTransceivers()[0].sender.transport.iceTransport.getSelectedCandidatePair() ¡Éxito! ¡Hay un par seleccionado!

Pero pc.connectionState todavía tiene un estado de conexión y se cuelga sin cesar...

Probé con conexiones wifi y gsm... ¡No entiendo nada!

Comprobado en otros dispositivos en la misma red (wifi):

Android 11 - Samsung Galaxy M12 - Éxito
Android 11 - Samsung Galaxy TAB A (2019) - Éxito
Android 11 - Samsung Galaxy A22 (mi) - FALLA

Solución para mí :

 let pc = new RTCPeerConnection({iceCandidatePoolSize: 1}) //any > 0 pc.oniceconnectionstatechange = function(){ if(pc.iceConnectionState === "connected") { for (let tr of pc.getTransceivers()) { let selected = tr.sender.transport.iceTransport.getSelectedCandidatePair(); if (selected) { //send selected.local to you server... } } } }

Error de cromo:
https://bugs.chromium.org/p/chromium/issues/detail?id=1240237

about 4 years ago · Juan Pablo Isaza Report

0

Creo que tengo un trabajo para esto. Solo sucede en la primera conexión webrtc: funciona al volver a intentarlo, así que agregué este código a mi proyecto y parece solucionarlo:

 fixAndroid = function (turn) { console.log("fixing android webrtc bug"); var cn = new RTCPeerConnection(turn, null); cn.createOffer({ offerToReceiveAudio: true, offerToReceiveVideo: true }).then(offer => { let rtcDesc = new RTCSessionDescription(offer); cn.setLocalDescription(rtcDesc, function () { //needs a second to initialise window.setTimeout(function (cn) { cn.close(); // start your webrtc connection here }, 1000, cn) }); }); }
about 4 years ago · Juan Pablo Isaza Report
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!