Android System WebView 2023年6月更新致WebRTC ICE候选选择40秒延迟求助
Android WebView 114.x+ WebRTC ICE候选阶段40秒延迟问题
- 不少开发者在将Android WebView升级到114.x版本后,都碰到了WebRTC进入ICE候选选择阶段时出现40秒延迟的问题。
- 这个问题的核心原因大多是114.x版本调整了ICE候选的收集与选择策略:旧版本会在收集到可用的主机候选(host)或服务器反射候选(srflx)后立即尝试连接,而新版本默认会等待所有类型候选(包括中继候选relay)收集完成后才启动连接,这就导致了不必要的等待。
- 可尝试的解决方法:
- 在WebRTC的
RTCPeerConnection配置中,手动设置iceTransportPolicy为"host"或"srflx",强制优先使用本地或反射候选,跳过中继候选的等待流程 - 确认应用已正确授予
ACCESS_NETWORK_STATE、CAMERA、RECORD_AUDIO等权限,权限缺失会导致ICE候选收集超时,进而触发延迟 - 检查WebView设置,开启
setMediaPlaybackRequiresUserGesture(false),避免用户手势验证阻塞WebRTC的初始化流程 - 排查自定义
WebViewClient或WebChromeClient的代码,确保没有拦截WebRTC相关的JS回调或事件,导致候选处理逻辑被中断
- 在WebRTC的
内容的提问来源于stack exchange,提问作者Tony Blackburn
相关产品推荐
相关产品推荐

