问题标签 [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.
webrtc - 我可以编辑通过 webRTC 数据通道发送的消息吗?
有没有办法编辑 RTCDataChannel API 为 webRTC 发送的任何消息?
webrtc - 我应该等待 RTCPeerConnection.setRemoteDescription() 和 RTCPeerConnection.addIceCandidate() 承诺解决吗?
RTCPeerConnection.setRemoteDescription()返回一个 Promise,一旦连接的 remoteDescription 的值成功更改,该 Promise 就会解析。在调用RTCPeerConnection.addIceCandidate()之前,我是否需要等待此 Promise 成功解决 ?
此外
RTCPeerConnection.addIceCandidate()
,返回一个 Promise,当 ICE 代理成功地将候选者添加到远程对等点的描述中时,该 Promise 就实现了。在通过添加下一个可用候选人之前,我应该等待此 Promise 成功解决,RTCPeerConnection.addIceCandidate()
还是可以并行添加 IceCandidates?
javascript - 我应该如何将 localStream 对象作为参数传递给 rtcpeerconnection addtrack 方法
我尝试了下面的代码
但它返回了这个错误
javascript - RTCPeerConnection - MediaStreamTrack 从外部源重新流式传输时只有黑帧
我目前正在开发一个库,该库MediaStreamTrack
通过RTCPeerConnection
.
我目前遇到的问题是除了远程轨道外一切正常。我的MediaStreamTrack
相机是在本地主机上创建的,可以毫无问题地发送,但是当我尝试发送从外部服务器接收的轨道时,它只显示黑框。
我猜这和这里的问题一样。
我检查过的
正在接收曲目(我检查过chrome://webrtc-internals
)并且视频元素处于播放状态。我在控制台和 webrtc-internals 中都没有看到任何错误。此外,流/轨道已启用且未静音。在源窗口上使用captureStream()
结果相同。
使用外部源捕获和流式传输视频元素可以正常工作。
可能的原因
我认为问题可能在于初始流来自不是的域,localhost
因此无法重新流式传输它。在 w3c 标准中是这样描述的:
轨道可能包含应用程序无法访问的内容。这可能是由于任何会使跟踪 CORS 跨域的原因。这些轨道可以提供给 addTrack() 方法,并为它们创建一个 RTCRtpSender,但不得传输内容。发送静音(音频)、黑帧(视频)或同等缺失的内容来代替轨道内容。
主意
我不确定我上面提到的“可能的问题”是否是真正的问题,但我的一个想法是重写请求和响应标头以匹配localhost
但它不起作用。我猜它不会影响 WebRTC 连接。
我使用的电子钩子:
webrtc - 当第三个人在 webrtc 中加入房间时,onaddstream 事件不起作用
我是 webrtc 的新手,我有一个奇怪的问题,当我处理一对一的用户onaddstream
事件时,我得到了它的响应,但是之后第三个人加入房间onaddstream
事件不起作用,谁能帮我如何解决这个问题?在这里我已经为它添加了我的整个代码,任何人都可以查看它并帮助我为所有远程用户获取事件
webrtc - 正确拆解 WebRTC RTCPeerConnection
我尝试做一个简单的 WebRTC p2p 视频聊天浏览器应用程序。我设置了一个信号服务器,并让两个对等方进行所有的SDP
握手ICE
。我的一些代码片段:
对等点完成后,我执行以下操作:
我只是关闭了 RTCPeerConnection。但我没有看到在onremovetrack
另一个对等方上被触发。
关闭对等点以便通知和onremovetrack
触发另一个对等点的正确方法是什么?
ios - WebRTC在IOS上显示黑屏
如果广播应用程序(Android)和客户端应用程序(IOS 和 Android)连接到同一网络中的 wifi,则一切正常。但是当广播者应用程序连接到移动数据连接时,客户端应用程序(IOS)显示黑屏,但 Android 仍然可以正常工作。我已经搜索了一些解决方法,他们建议在我的 peerConnection 中添加 STUN 和 TURN,但我之前已经添加了。在不同的网络连接上建立通信时似乎不起作用。这就是我设置 RTCPeerConnection 的方式。
客户端应用程序只需要接收视频轨道,强制约束中不添加音频。谢谢
android - 当 Android 应用程序进入后台并且设备处于省电模式时,音频通话停止工作
我的问题更像是客户端。
我正在使用 Janus AudioBridge Room 进行音频通话。
如果设备未处于省电模式,Android 应用程序在前台和后台模式下都能正常工作。
但是当设备处于省电模式时。应用程序在进入后台时被挂起。
当我们回到应用程序时。呼叫从那里重新加入。但是如果它足够长来调用“Keepalive”事件。然后应用程序将停止或崩溃。
我通过从用户那里明确获得这个 android 权限来处理这个问题。“android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS”
然后进入省电模式。我们的电话不影响。因为我们的应用程序现在也可以在节电模式下在后台工作。
我不认为这是最好的方法。
我检查了 Whatsapp 权限。他们不是要求它。
Whatsapp 或其他呼叫应用程序正在做什么以更熟练的方式做到这一点?
任何指南和线索都会有所帮助。我很感激
javascript - 视频流不是通过我的 RTCPeerConnection 发送的
所以我用这个小测试代码模拟了我所拥有的真实版本的情况。在其中,我在同一个文件中设置了 2 个对等连接,每个连接在 html 上都有一个专用的视频元素。问题是,当我开始共享屏幕时,流没有显示在其他对等方(peer2
)上,这与我在真实版本的代码中遇到的问题相同。
这是js代码
索引.html
重要的:
stream - 区分 RTCPeerConnection 远端的轨道种类
在事件track
的远程端区分 ' 的好方法是什么?假设我想将麦克风音轨与系统音轨区别对待,我该怎么做?RTCPeerConnection
ontrack