问题标签 [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.

0 投票
0 回答
27 浏览

webrtc - 我可以编辑通过 webRTC 数据通道发送的消息吗?

有没有办法编辑 RTCDataChannel API 为 webRTC 发送的任何消息?

0 投票
1 回答
61 浏览

webrtc - 我应该等待 RTCPeerConnection.setRemoteDescription() 和 RTCPeerConnection.addIceCandidate() 承诺解决吗?

  1. RTCPeerConnection.setRemoteDescription()返回一个 Promise,一旦连接的 remoteDescription 的值成功更改,该 Promise 就会解析。在调用RTCPeerConnection.addIceCandidate()之前,我是否需要等待此 Promise 成功解决 ?

  2. 此外RTCPeerConnection.addIceCandidate(),返回一个 Promise,当 ICE 代理成功地将候选者添加到远程对等点的描述中时,该 Promise 就实现了。在通过添加下一个可用候选人之前,我应该等待此 Promise 成功解决,RTCPeerConnection.addIceCandidate()还是可以并行添加 IceCandidates?

0 投票
1 回答
222 浏览

javascript - 我应该如何将 localStream 对象作为参数传递给 rtcpeerconnection addtrack 方法

我尝试了下面的代码

但它返回了这个错误

0 投票
0 回答
192 浏览

javascript - RTCPeerConnection - MediaStreamTrack 从外部源重新流式传输时只有黑帧

我目前正在开发一个库,该库MediaStreamTrack通过RTCPeerConnection.

我目前遇到的问题是除了远程轨道外一切正常。我的MediaStreamTrack相机是在本地主机上创建的,可以毫无问题地发送,但是当我尝试发送从外部服务器接收的轨道时,它只显示黑框。

我猜这和这里的问题一样。

我检查过的

正在接收曲目(我检查过chrome://webrtc-internals)并且视频元素处于播放状态。我在控制台和 webrtc-internals 中都没有看到任何错误。此外,流/轨道已启用且未静音。在源窗口上使用captureStream()结果相同。

使用外部源捕获和流式传输视频元素可以正常工作。

可能的原因

我认为问题可能在于初始流来自不是的域,localhost因此无法重新流式传输它。在 w3c 标准中是这样描述的:

轨道可能包含应用程序无法访问的内容。这可能是由于任何会使跟踪 CORS 跨域的原因。这些轨道可以提供给 addTrack() 方法,并为它们创建一个 RTCRtpSender,但不得传输内容。发送静音(音频)、黑帧(视频)或同等缺失的内容来代替轨道内容。

来源 (10.)

主意

我不确定我上面提到的“可能的问题”是否是真正的问题,但我的一个想法是重写请求和响应标头以匹配localhost但它不起作用。我猜它不会影响 WebRTC 连接。

我使用的电子钩子:

0 投票
1 回答
64 浏览

webrtc - 当第三个人在 webrtc 中加入房间时,onaddstream 事件不起作用

我是 webrtc 的新手,我有一个奇怪的问题,当我处理一对一的用户onaddstream事件时,我得到了它的响应,但是之后第三个人加入房间onaddstream事件不起作用,谁能帮我如何解决这个问题?在这里我已经为它添加了我的整个代码,任何人都可以查看它并帮助我为所有远程用户获取事件

0 投票
1 回答
203 浏览

webrtc - 正确拆解 WebRTC RTCPeerConnection

我尝试做一个简单的 WebRTC p2p 视频聊天浏览器应用程序。我设置了一个信号服务器,并让两个对等方进行所有的SDP握手ICE。我的一些代码片段:

对等点完成后,我执行以下操作:

我只是关闭了 RTCPeerConnection。但我没有看到在onremovetrack另一个对等方上被触发。

关闭对等点以便通知和onremovetrack触发另一个对等点的正确方法是什么?

0 投票
1 回答
517 浏览

ios - WebRTC在IOS上显示黑屏

如果广播应用程序(Android)和客户端应用程序(IOS 和 Android)连接到同一网络中的 wifi,则一切正常。但是当广播者应用程序连接到移动数据连接时,客户端应用程序(IOS)显示黑屏,但 Android 仍然可以正常工作。我已经搜索了一些解决方法,他们建议在我的 peerConnection 中添加 STUN 和 TURN,但我之前已经添加了。在不同的网络连接上建立通信时似乎不起作用。这就是我设置 RTCPeerConnection 的方式。

客户端应用程序只需要接收视频轨道,强制约束中不添加音频。谢谢

0 投票
0 回答
54 浏览

android - 当 Android 应用程序进入后台并且设备处于省电模式时,音频通话停止工作

我的问题更像是客户端。

我正在使用 Janus AudioBridge Room 进行音频通话。

如果设备未处于省电模式,Android 应用程序在前台和后台模式下都能正常工作。

但是当设备处于省电模式时。应用程序在进入后台时被挂起。

当我们回到应用程序时。呼叫从那里重新加入。但是如果它足够长来调用“Keepalive”事件。然后应用程序将停止或崩溃。

我通过从用户那里明确获得这个 android 权限来处理这个问题。“android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS”

然后进入省电模式。我们的电话不影响。因为我们的应用程序现在也可以在节电模式下在后台工作。

我不认为这是最好的方法。

我检查了 Whatsapp 权限。他们不是要求它。

Whatsapp 或其他呼叫应用程序正在做什么以更熟练的方式做到这一点?

任何指南和线索都会有所帮助。我很感激

0 投票
1 回答
72 浏览

javascript - 视频流不是通过我的 RTCPeerConnection 发送的

所以我用这个小测试代码模拟了我所拥有的真实版本的情况。在其中,我在同一个文件中设置了 2 个对等连接,每个连接在 html 上都有一个专用的视频元素。问题是,当我开始共享屏幕时,流没有显示在其他对等方(peer2)上,这与我在真实版本的代码中遇到的问题相同。

这是js代码

索引.html

重要的:

0 投票
1 回答
28 浏览

stream - 区分 RTCPeerConnection 远端的轨道种类

在事件track的远程端区分 ' 的好方法是什么?假设我想将麦克风音轨与系统音轨区别对待,我该怎么做?RTCPeerConnectionontrack