问题标签 [rtcpeerconnection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 调用 createAnswer 不会改变 `signallingState`
调用createAnswer
没有改变signalingState
,它仍然在have-remote-offer
。这可能是什么原因。
reactjs - RTCPeerConnection 和 createDataChannel 不适用于 Edge
我一直在开发一个应用程序,当一个人登录帐户时,设备的 IP 地址存储在后端和本地存储中。然后当一个人从另一个浏览器登录同一个帐户时,它会显示一个带有最后登录IP地址的弹出窗口。它似乎适用于 chrome 和 Mozilla,但不适用于边缘浏览器。它总是返回 null,因为它没有在 pc.createDataChannel 之后输入代码。
代码片段如下。
我也尝试使用适配器 js,但不确定如何准确使用它。
javascript - 页面重新加载后重新连接多个 peerConnections
我正在创建一个 Web 应用程序,用于使用 WebRTC 通过智能手机进行监控,而对于我正在使用 socket.io 的信令服务器。
当我发送一个流时,我在接收这个流的“watch”页面上创建了一个RTCPeerConnection对象。我在单独的页面上发送流。用户最多可以附加来自智能手机的四个流,因此在“观看”页面上最多有四个RTCPeerConnection对象。
一旦出现“传输”页面的报价,就会自动接收流,然后在“监视”页面上创建RTCPeerConnection对象并连接到标准 WebRTC 模式。
“传输”页面:
“观看”页面:
我的 Web 应用程序需要这样的功能,当我们退出“观看”页面并再次返回时,必须显示所有以前包含的流。
为了实现这个功能,我使用了oniceconnectionstatechange方法。如果流断开连接,则执行iceRestart函数,该函数使用选项{iceRestart: true}创建报价
“传输”页面:
问题是当我重新启动“观看”页面时,所有页面“传输”立即发送询问。尽管一次创建了四个RTCPeerConnection对象(假设用户发送了四个流),但只连接了一个对象。
我已经为这个问题苦苦挣扎了好几天。如上面的代码所示,我尝试在对getStream()函数的后续调用中设置增加的时间延迟,我尝试signallingState
在执行getStream()函数之前检查连接,我尝试了其他几种方法,但都没有奏效。
如果您需要我的代码的某些部分来提供帮助,请写信。
编辑:
“观看”页面中的 gotDescription() 方法。
我console.log
加上RTCPeerConnection object
控制台输出: https ://i.stack.imgur.com/dQXkE.png 1
日志显示signalingState
连接是“稳定的”,但是当我开发对象时,signalingState
等于“have-remote-offer”
javascript - 对等连接保持在 chrome://webrtc-internals/ 即使在断开连接后
我们开发了 SFU 会议解决方案。当用户离开会议时,对等连接不会结束。它以关闭状态显示在 chrome://webrtc-internals/ 中。
- 这会算作一个活动的对等连接吗?
- 即使活动对等连接计数在限制范围内,此行为是否会使对等连接限制超出?
javascript - 如何重置 webrtc 状态?
我有一个问题,有时我需要重置 WebRTC 状态(例如我有时会收到此错误:
无法设置远程报价 sdp:在错误状态下调用:kHaveLocalOffer
但是是否可以在不删除和创建新的 RTCPeerConnection 对象的情况下这样做?我不想停止当前的本地视频捕获...
javascript - 强制 UDP 用于 Webrtc 对等连接
我在 Chrome 中使用 webrtc RtcPeerConnection API。
我当地的 SDP 报价是这样的
我认为如果 UDP 不工作,它会尝试 TCP。
但!我不希望 TCP 和 TCP 连接会导致异常,如何从本地 SDP 报价中删除 TCP 线路?
javascript - RTCPeerConnection IOS 12.2 到 Android 7.X
我正在构建 RTCPeerConnection 通信,我发现了一个问题,从 iOS 12.2(仅使用 Ipad 测试)调用到 Android(仅使用 7.11 测试)流将不会交换。
其他同行都可以,比如 iOS 到 Chrome(桌面),iOS 到 iOS,iOS 到 Chrome 桌面,Android 到 iOS 也可以。
使用约束音频仅适用于所有对等方,但在添加视频并且连接来自 iOS 12.2 => Android 时会出现问题。(iOS 提出要约)
这可能是编解码器问题,但 Android 到 iOS 建立视频连接没有问题,所以我不确定。
我使用的是 Tracks,而不是 Streams。
还有其他人遇到过这个问题并有提示吗?
javascript - 带有参数 null 的 addIceCandidate 导致错误
我正在尝试学习 WebRTC,我已经在同一页面中连接了两个 RTCPeerConnection,我现在正试图将它们分成两个单独的页面并连接它们。但是,在编写代码并交换提议和答案之后,我注意到initiator.html 上的 addIceCandidate() 将始终使用 null 参数抛出这个
Error at addIceCandidate from queue: TypeError: Failed to execute 'addIceCandidate' on 'RTCPeerConnection': Candidate missing values for both sdpMid and sdpMLineIndex
at processCandidateQueue (initiator.html:69)
经过一番阅读,我了解到 null 用于指示 ICE Candidate 收集完成,这里的示例:https : //webrtc.github.io/samples/src/content/peerconnection/pc1/ 收集完成时也执行带有参数 null 的“addIceCandidate” . 但我不明白为什么我现在看到了我看到的错误。
我试过的:
- 我曾尝试写一个检查,如果候选人为空,请跳过 addIceCandidate。
- 将所有连接逻辑放在更少的按钮中,以减少函数调用之间的延迟
- 将 adapter-latest.js 添加到每个页面
结果:
- 发起者连接状态为“失败”,接收者连接状态为“新”。无法流式传输到接收器页面。
- 抛出了同样的错误
- 错误消失了,但连接仍然失败
发起者.html
接收器.html
common.js
common.css
c++ - 如何在 ubuntu 中安装 JRTPLIB?
我尝试在 ubuntu 机器上安装 JRTPLIB,但我不知道该怎么做,任何人都可以帮助我,拜托。
谢谢你