2013-09-16 59 views
8

我正在使用webRTC創建多用戶視頻聊天。 但我已經遇到了一個問題,RTCPeerConnectionWebRTC偶爾會給出黑屏

在某些情況下,我與每個人都看到了其他人的視頻 但有時我從用戶那裏得到黑屏7個用戶聊天。

奇怪的是,它是完全隨機的,有時一切正常。有時用戶有黑屏。如果該用戶重新登錄,則會出現其他屏幕變黑或一切正常。

我檢查我的PeerConnection這是如何工作的流程,這裏是它如何工作對我來說:

啓動該PeerConnection等用戶:

  • 肯尼思:等連接創建main.js:275
  • kenneth:遠程流監聽器添加main.js:280
  • kenneth:偵聽器遠程流刪除添加main.js:285
  • kenneth:本地流添加到peerc onnection main.js:264
  • 肯尼斯:優惠創建main.js:293
  • 肯尼斯:優惠發送main.js:315
  • 肯尼斯:回答接收main.js:205
  • 肯尼斯:監聽器加入到從回答main.js遠程說明set:發送本地ICE候選main.js:210
  • 肯尼斯215
  • 肯尼斯:遠程流加入main.js:366
  • 肯尼斯:遠程ICE接收main.js:218
  • 午:遠程ICE加入到等連接main.js:225
  • 肯尼斯:遠程ICE接收main.js:218
  • 肯尼斯:遠程ICE加入到等連接main.js:225
  • 肯尼斯:ICE候選發送主。 JS:340
  • 肯尼斯:ICE候選發送main.js:340
  • 肯尼斯:ICE候選發送main.js:340
  • 肯尼斯:ICE候選發送main.js:340
  • 肯尼斯:接收到的遠程ICE main.js:218
  • 肯尼斯:遠程ICE加入到等連接main.js:225
  • 肯尼斯:遠程ICE接收main.js:218
  • 肯尼斯:遠程ICE加入到等連接main.js:225
  • 肯尼斯:ICE候選發送主.js:340
  • kenneth:ICE候選人發送main.js:340
  • kenneth:候選人主結束。JS:342

接收的報價的用戶,然後創建回答:

  • kennethtest1:提供接收main.js:183
  • kennethtest1:等連接創建main.js:275
  • kennethtest1:爲遠程流添加的監聽器main.js:280
  • kennethtest1:監聽器遠程流刪除添加main.js:285
  • kennethtest1:監聽器adde d送當地ICE候選人main.js:189
  • kennethtest1:遠程說明從報價main.js設置:194
  • kennethtest1:本地流加入到等連接main.js:198
  • kennethtest1:答案創建主。 JS:301
  • kennethtest1:遠程流加入main.js:366
  • kennethtest1:回答發送main.js:324
  • kennethtest1:ICE候選發送main.js:340
  • kennethtest1:ICE候選發送主.js:340
  • kennethtest1:ICE候選發送main.js:340
  • kennethtest1:ICE候選發送main.js:340
  • kennethtest1:遠程ICE接收main.js:218
  • kennethtest1:遠程ICE加入等連接主。 JS:225
  • kennethtest1:遠程ICE接收main.js:218
  • kennethtest1:遠程ICE加入到等連接main.js:225
  • kennethtest1:遠程ICE接收main.js:218
  • kennethte ST1:遠程ICE加入到等連接main.js:225
  • kennethtest1:遠程ICE接收main.js:218
  • kennethtest1:遠程ICE加入到等連接main.js:225
  • kennethtest1:考生主結束。 JS:342
  • kennethtest1:遠程ICE接收main.js:218
  • kennethtest1:遠程ICE加入到等連接main.js:225
  • kennethtest1:遠程ICE收到main.js:218
  • kennethtest1:遠程ICE添加到Peerconnection main.js :225

我還檢查了鍍鉻://的WebRTC-內部/ 在那裏我可以看到,對於特定黑屏PeerConnection等流是有 但不發送任何數據槽它。

任何人都有一個想法,爲什麼有時流不打開在這裏?

回答

1

通過添加多個STUN服務器而不是僅依賴一個來修復此問題。我已經看到,使用一個谷歌STUN服務器偶爾會發出請求不及時返回,這使得webrtc停止搜索通過媒體流發送的路徑。

我從其他的開源供應商加入STUN服務器

+0

對於其他人的參考:黑色遙控器的屏幕大多是冰服務器(或候選人交換)問題,將多臺服務器的問題解決了你,但不是一個通用的方法擺脫黑色的遠程視圖!一些調查表明,如果在答案傳輸之前傳輸候選冰球,它也可以有所作爲...... – WiRa