gpt4 book ai didi

node.js - Webrtc:无法处理 WebRTC 答案

转载 作者:IT老高 更新时间:2023-10-28 23:26:50 28 4
gpt4 key购买 nike

我正在使用 ejabberd + stanza io 构建一个实时消息和音频调用网站。我设法打了我的第一个音频电话

from chrome(on PC) -> chrome(on mac) with no errors

当我尝试调用电话时出现问题

from chrome(on mac) to firefox(on pc) or vice versa

Chrome 浏览器日志正在显示无法处理 WebRTC 回答

通过使用 chrome://webrtc-internals 调试器工具,我发现 setremotedescription 失败并出现以下错误:

`Failed to set remote answer sdp: Called with SDP without ice-ufrag and ice-pwd`

这是我用来开始通话的:

var session = client.jingle.createMediaSession('full JID');
session.addStream(localAudio_stream); // getUserMedia stream
session.start();

我做错了什么? firefox怎么能成功建立调用但chrome却不能(在opera上测试,结果相同(失败))

Full JS code

最佳答案

我已经通过在 client.js(stanza.io 的)中包含 npm 包 sdpparser 解决了这个问题,然后再次构建它,并在 stanza.io.bundle 中我调整了 PeerConnection.prototype.handleAnswer 像这样:

var sdp = client.SdpParser.parse(answer.sdp);
sdp.media.forEach(function(media){
if(media.type === 'video' && media.inactive ) {
delete media.fingerprint;
media.port = 0;
}
});
answer.sdp = client.SdpParser.format(sdp);

这可能不是最好的方法,但绝对可以解决问题。

github link of the tweaked stanza.io

Helpful github issue on jingle.js repo

关于node.js - Webrtc:无法处理 WebRTC 答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47740113/

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