gpt4 book ai didi

Safari 不发送 ice 候选

转载 作者:行者123 更新时间:2023-12-01 04:32:46 26 4
gpt4 key购买 nike

不要在 safari 中工作示例

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

在 chrome 中,一切都很好。

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

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

更新

在前面 (index.js)

事件 onOfferViewer 总是被执行

onIceCandidate – 从未执行过

从 Front 到节点的连接

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

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

深入了解kurento utils

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

iceServers: 数组 (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 之后
执行流程回答后

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

pc.addEventListener('icecandidate', function (event) {…} 


在 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"
}

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"
}
}

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)

节点如何连接到 KMS
var argv = minimist(process.argv.slice(2), {
default: {
as_uri: 'https://localhost:8443/',
ws_uri: 'ws://37.228.89.170:8888/kurento'
}
});

最佳答案

两种选择:

  • 仅限 Safari 12 - 需要在 Safari 设置中启用实验性功能“启用 MDNS Ice Candidates”,高级实验性功能
  • Safari 11 - 您必须调用 getUserMedia({video: true, audio: true}) ,并让用户接受对话框以允许在您的页面上显示视频和音频。即使您不想使用视频或音频,这也会导致 safari 在谈判期间发送冰块候选人
  • 关于Safari 不发送 ice 候选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52724194/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com