WebRTCをテストしているときpeerConnection.addStream(…)に、間違った場所に電話をかけると、このような状態が発生することがわかりました----
WebRTCでは順序付けが非常に重要であることを覚えておく必要があります。
更新日:午後6時36分-2014年7月17日木曜日(UTC)
空白のビデオは、次の場合に発生します。
- SSL証明書の有効期限が切れているか、無効なエントリがあるときにSTUNを使用しています。
- STUNを使用していますが、外部IPアドレスまたは一部のポートをブロックまたは非表示にしているのは、企業ファイアウォール、病院ネットワーク、またはプライベートネットワークです。
- 両方のピアに無効なsendrecv/sendonly/recvonlyペアがあります
- 提供者がストリームを添付しなかったか、ユーザーがオーディオストリームのみを添付した場合に失敗するのは、Firefoxです。
OfferToReceiveVideo:true
- これらのプロパティに関する既知の問題があるのはAndroidである
HTMLMediaElement.HAVE_CURRENT_DATAか、mediaElement.pausedまたはその間です。mediaElement.currentTime
ソリューション?
- XirSysからTURNを使用するか、独自のをインストールします。
- 有効なSSL証明書を使用しているか、代わりにHTTPを使用していることを確認してください。
- 提供者がストリームを添付していることを確認してください。
OfferToReceiveAudioまた、 /OfferToReceiveVideoが接続されているストリームに従って使用されていることを確認してください。
- SDPを変更していないことを確認してください。また、両方のピア間でSDPを比較し、不一致を見つけてください。
コードの順序付けは、今日ではまれな問題の一種です。これは、addStreamオファーまたはアンサーを作成する前にコードを呼び出す必要があることを私たち全員が知っているためです。再交渉されたセッションでも。
chrome://webrtc-internalsFirefoxを使用して、about:configこれらのブラウザ内で何が起こっているかを確認してください。また、イベントには常にコンソールログを使用します。これは、ICE-ConnectivityチェックプロセスでonIceConnectionStateChangeICE-Agentをチェックするのに役立ちます。failed
提供者のsetting-remote-sdpが早すぎると、例外が発生することがあります。常に/と/onSdpErrorの両方に使用します。createOffercreateAnswersetLocalDescriptionsetRemoteDescription
peer.setRemoteDescription(remoteSDP, onSdpSuccess, onSdpFailure);
いくつかのデモリソース:
- https://github.com/muaz-khan/WebRTC-実験/デモ
- https://github.com/mozilla/webrtc-landing
およびhttps://www.webrtc-experiment.com/docs/TURN-server-installation-guide.html