Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript WebRTC偶尔会出现黑屏_Javascript_Video_Webrtc - Fatal编程技术网

Javascript WebRTC偶尔会出现黑屏

Javascript WebRTC偶尔会出现黑屏,javascript,video,webrtc,Javascript,Video,Webrtc,我正在使用webRTC创建多用户视频聊天。 但是我遇到了RTPeerConnection的问题 在某些情况下,我与7名用户聊天,每个人都会看到其他人的视频 但有时我会从用户那里得到黑屏 奇怪的是,它完全是随机的,有时一切都正常。有时用户会出现黑屏。如果该用户重新登录,则会出现其他黑色屏幕,或者一切正常 我已经检查了peerconnection的工作流程,下面是它对我的工作方式: 启动peerconnection的用户: kenneth:Peerconnection创建了main.js:275

我正在使用webRTC创建多用户视频聊天。 但是我遇到了RTPeerConnection的问题

在某些情况下,我与7名用户聊天,每个人都会看到其他人的视频 但有时我会从用户那里得到黑屏

奇怪的是,它完全是随机的,有时一切都正常。有时用户会出现黑屏。如果该用户重新登录,则会出现其他黑色屏幕,或者一切正常

我已经检查了peerconnection的工作流程,下面是它对我的工作方式:

启动peerconnection的用户:

  • kenneth:Peerconnection创建了main.js:275
  • kenneth:远程流的侦听器添加了main.js:280
  • kenneth:删除了侦听器远程流添加了main.js:285
  • kenneth:本地流添加到peerconnection main.js:264
  • kenneth:Offer创建了main.js:293
  • 肯尼斯:报价发送到main.js:315
  • 肯尼斯:答案已收到。js:205
  • kenneth:Listener添加到发送本地ICE候选main.js:210
  • kenneth:answer main.js:215中的远程描述集
  • kenneth:远程流添加了main.js:366
  • 肯尼思:远程ICE接收main.js:218
  • 肯尼斯:远程冰添加到Peerconnection main.js:225
  • 肯尼思:远程ICE接收main.js:218
  • 肯尼斯:远程冰添加到Peerconnection main.js:225
  • 肯尼斯:ICE候选人发送了main.js:340
  • 肯尼斯:ICE候选人发送了main.js:340
  • 肯尼斯:ICE候选人发送了main.js:340
  • 肯尼斯:ICE候选人发送了main.js:340
  • 肯尼思:远程ICE接收main.js:218
  • 肯尼斯:远程冰添加到Peerconnection main.js:225
  • 肯尼思:远程ICE接收main.js:218
  • 肯尼斯:远程冰添加到Peerconnection main.js:225
  • 肯尼斯:ICE候选人发送了main.js:340
  • 肯尼斯:ICE候选人发送了main.js:340
  • 肯尼思:主文结束。js:342
接收报价然后创建答复的用户:

  • kennethtest1:收到的报价main.js:183
  • kennethtest1:Peerconnection创建了main.js:275
  • kennethtest1:远程流的侦听器添加了main.js:280
  • kennethtest1:删除了侦听器远程流添加了main.js:285
  • kennethtest1:Listener添加到发送本地ICE候选main.js:189
  • kennethtest1:来自offer main.js:194的远程描述集
  • kennethtest1:本地流添加到peerconnection main.js:198
  • kennethtest1:Answer创建了main.js:301
  • kennethtest1:远程流添加了main.js:366
  • kennethtest1:应答发送main.js:324
  • kennethtest1:ICE候选人发送main.js:340
  • kennethtest1:ICE候选人发送main.js:340
  • kennethtest1:ICE候选人发送main.js:340
  • kennethtest1:ICE候选人发送main.js:340
  • kennethtest1:远程ICE接收main.js:218
  • kennethtest1:远程ICE添加到Peerconnection main.js:225
  • kennethtest1:远程ICE接收main.js:218
  • kennethtest1:远程ICE添加到Peerconnection main.js:225
  • kennethtest1:远程ICE接收main.js:218
  • kennethtest1:远程ICE添加到Peerconnection main.js:225
  • kennethtest1:远程ICE接收main.js:218
  • kennethtest1:远程ICE添加到Peerconnection main.js:225
  • kennethtest1:main.js:342的结尾
  • kennethtest1:远程ICE接收main.js:218
  • kennethtest1:远程ICE添加到Peerconnection main.js:225
  • kennethtest1:远程ICE接收main.js:218
  • kennethtest1:远程ICE添加到Peerconnection main.js:225
我也退房了chrome://webrtc-internals/ 我可以看到,对于特定的黑屏peerconnection,流就在那里 但它并没有通过它发送任何数据


有人知道为什么有时候流不能在这里打开吗?

通过添加多个STUN服务器而不是只依赖一个服务器来解决这个问题。我已经看到,偶尔使用一台google STUN服务器,请求不会及时返回,这使得webrtc停止搜索通过媒体流发送的路径


我添加了来自其他开源供应商的STUN服务器

供其他人参考:黑色远程屏幕主要是ice服务器(或候选交换)问题,添加多个服务器为您解决了问题,但不是摆脱黑色远程视图的通用方法!一些调查表明,如果在发送答案之前发送ice候选,也会产生影响……添加多个STURN服务器是一个坏选项,这将延迟ice收集。