10

webRTC を使用してマルチ ユーザー ビデオ チャットを作成しています。しかし、RTCPeerConnection で問題が発生しました

場合によっては、7 人のユーザーとチャットして、全員が他の人のビデオを見ることもありますが、ユーザーから黒い画面が表示されることがあります。

奇妙なことは、それが完全にランダムで、時にはすべてが機能することです。ユーザーの画面が黒い場合があります。そのユーザーが再ログインすると、他の画面が黒くなるか、すべてが機能します。

ピア接続がどのように機能するかの流れを確認しました。これが私にとってどのように機能するかです。

ピア接続を開始するユーザー:

  • kenneth: ピア接続が作成されました main.js:275
  • kenneth: リモート ストリームのリスナーが追加されました main.js:280
  • ケネス: リスナーのリモート ストリームが削除され、main.js:285 が追加されました
  • kenneth: ローカル ストリームが peerconnection main.js:264 に追加されました
  • kenneth: オファーが作成されました main.js:293
  • ケネス: オファーが送信されました main.js:315
  • ケネス: 回答を受け取りました main.js:205
  • kenneth: ローカル ICE 候補を送信するために追加されたリスナー main.js:210
  • ケネス:回答main.js:215から設定されたリモート説明
  • kenneth: リモート ストリームが追加されました main.js:366
  • ケネス: リモート ICE を受信した main.js:218
  • kenneth: Peerconnection main.js:225 に追加されたリモート ICE
  • ケネス: リモート ICE を受信した main.js:218
  • kenneth: Peerconnection main.js:225 に追加されたリモート ICE
  • kenneth: ICE 候補が送信されました main.js:340
  • kenneth: ICE 候補が送信されました main.js:340
  • kenneth: ICE 候補が送信されました main.js:340
  • kenneth: ICE 候補が送信されました main.js:340
  • ケネス: リモート ICE を受信した main.js:218
  • kenneth: Peerconnection main.js:225 に追加されたリモート ICE
  • ケネス: リモート ICE を受信した main.js:218
  • kenneth: Peerconnection main.js:225 に追加されたリモート ICE
  • kenneth: ICE 候補が送信されました main.js:340
  • kenneth: ICE 候補が送信されました main.js:340
  • ケネス: 候補の終わり main.js:342

オファーを受け取り、回答を作成するユーザー:

  • kennethtest1: 申し出を受けた main.js:183
  • kennethtest1: ピア接続が作成されました main.js:275
  • kennethtest1: リモート ストリームのリスナーが追加されました main.js:280
  • kennethtest1: リスナーのリモート ストリームが削除され、main.js:285 が追加されました
  • kennethtest1: ローカル ICE 候補を送信するために追加されたリスナー main.js:189
  • kennethtest1: オファー main.js:194 から設定されたリモート説明
  • kennethtest1: ピア接続 main.js:198 に追加されたローカル ストリーム
  • kennethtest1: 回答が作成されました 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: Peerconnection main.js:225 に追加されたリモート ICE
  • kennethtest1: リモート ICE を受信した main.js:218
  • kennethtest1: Peerconnection main.js:225 に追加されたリモート ICE
  • kennethtest1: リモート ICE を受信した main.js:218
  • kennethtest1: Peerconnection main.js:225 に追加されたリモート ICE
  • kennethtest1: リモート ICE を受信した main.js:218
  • kennethtest1: Peerconnection main.js:225 に追加されたリモート ICE
  • kennethtest1: 候補の終わり main.js:342
  • kennethtest1: リモート ICE を受信した main.js:218
  • kennethtest1: Peerconnection main.js:225 に追加されたリモート ICE
  • kennethtest1: リモート ICE が main.js:218 を受信しました
  • kennethtest1: Peerconnection main.js:225 に追加されたリモート ICE

chrome://webrtc-internals/ もチェックアウトしました。特定の黒い画面のピア接続では、ストリームは存在しますが、そこからデータを送信していないことがわかります。

ここでストリームが開かないことがある理由を知っている人はいますか?

4

1 に答える 1

1

1 つだけに依存するのではなく、複数の STUN サーバーを追加することで、これを修正しました。1 つの Google STUN サーバーを使用すると、リクエストが時間内に返されず、webrtc がメディア ストリームを介して送信するパスの検索を停止することがあります。

他のオープン ソース サプライヤから STUN サーバーを追加しました

于 2013-11-28T15:10:01.367 に答える