Safari 不发送 ice 候选

вас*_*ень 5 safari webrtc kurento

不要在 safari 中工作示例

https://github.com/Kurento/kurento-tutorial-node/tree/master/kurento-one2many-call

在 chrome 中,一切都很好。

Safari 不会在查看模式下发送冰候选者。演示者模式没问题

====================

更新

在前面(index.js)

事件 onOfferViewer 总是被执行

onIceCandidate – 从未执行过

从前端到节点的连接

var ws = new WebSocket('wss://' + location.host + '/one2many');

在 KMS 上,Turn 不会打开,但配置了 Stun。我可以从 Safari 进行广播,但无法在其上观看

深入了解 kurento utils

在 WebRtcPeer 初始化之前,选择了 2 个 Sturm 服务器

iceServers: Array (2) 0 {username: undefined, credential: undefined, url: "stun:stun.l.google.com:19302", urls: ["stun:stun.l.google.com:19302"]}

1 {username: undefined, credential: undefined, url: "stun:stun.voipbuster.com", urls: ["stun:stun.voipbuster.com"]}

创建 RTCPeerConnection
之后 After Process answer 被执行

我认为下一步必须在函数 addEventListener 中

pc.addEventListener('icecandidate', function (event) {…} 
Run Code Online (Sandbox Code Playgroud)

在 Chrome 的 addEventListener 函数中,会执行回调,但对于 Safari 则不会。

我可以假设候选人在订阅之前就来了,但没有证据,我不明白为什么演示者工作正常。

细节

我开始在 Safari 中以演示者模式进行广播

Safari 版本- 13604.3.5 (MacOs - 11.0.1)

Safari 选项

旧 api - 已启用

冰限制 - 已禁用

Bower 的依赖项

"dependencies": { 
    "adapter.js": "v0.2.9", 
    "bootstrap": "~3.3.0", 
    "ekko-lightbox": "~3.3.0", 
    "demo-console": "1.5.1", 
    "kurento-utils": "master" 
 } 
Run Code Online (Sandbox Code Playgroud)

package.json 结构

{ 
  "name": "kurento-one2many-call", 
  "version": "6.7.3-dev", 
  "private": true, 
  "scripts": { 
    "postinstall": "cd static && bower install" 
  }, 
  "dependencies": { 
    "express": "~4.12.4", 
    "minimist": "^1.1.1", 
    "ws": "~1.0.1", 
    "kurento-client": "Kurento/kurento-client-js" 
  }, 
  "devDependencies": { 
    "bower": "^1.4.1" 
  } 
} 
Run Code Online (Sandbox Code Playgroud)

Safari 日志的输出

Safari 日志的输出

[Log] Browser does not appear to be WebRTC-capable (adapter.js, line 34) 

[Debug] constraints: {"offerToReceiveAudio":true,"offerToReceiveVideo":true} (kurento-utils.js, line 268) 

[Debug] Created SDP offer (kurento-utils.js, line 270) 

[Debug] Local description set – "v=0 

?o=- 5811275597248577793 2 IN IP4 127.0.0.1 

?s=- 

?t=0 0 

?a=msid-semantic: WMS 

?" (kurento-utils.js, line 275) 

"v=0 

o=- 5811275597248577793 2 IN IP4 127.0.0.1 

s=- 

t=0 0 

a=msid-semantic: WMS 

" 

[Log] Senging message: {"id":"viewer","sdpOffer":"v=0\r\no=- 5811275597248577793 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=msid-semantic: WMS\r\n"} (index.js, line 70) 

[Info] Received message: {"id":"viewerResponse","response":"accepted","sdpAnswer":"v=0\r\no=- 3748169328 3748169328 IN IP4 0.0.0.0\r\ns=Kurento Media Server\r\nc=IN IP4 0.0.0.0\r\nt=0 0\r\na=msid-semantic: WMS\r\n"} (index.js, line 70) 

[Debug] SDP answer received, setting remote description (kurento-utils.js, line 320)  

[Debug] Remote stream: – undefined (kurento-utils.js, line 294)
Run Code Online (Sandbox Code Playgroud)

节点如何连接到 KMS

var argv = minimist(process.argv.slice(2), {
    default: { 
        as_uri: 'https://localhost:8443/',      
        ws_uri: 'ws://37.228.89.170:8888/kurento' 
    }
}); 
Run Code Online (Sandbox Code Playgroud)

小智 -1

这个问题很模糊,没有提供很多细节。请提供有关您遇到的问题以及您为尝试修复/调试它所做的操作的更多详细信息。

您可以尝试在开发者菜单中禁用 ICE 候选限制选项并重新启动 Safari,如Google Group 帖子中所述。在不了解更多信息的情况下,我无法提供更多帮助。

为了将来,请提供有关您尝试过的问题和解决方案的更全面和详细的信息。