示例#1
0
 public static RTCIceCandidateInit FromNative(this Webrtc.IceCandidate nativeIceCandidate) =>
 new RTCIceCandidateInit
 {
     Candidate     = nativeIceCandidate.Sdp,
     SdpMid        = nativeIceCandidate.SdpMid,
     SdpMLineIndex = (ushort)nativeIceCandidate.SdpMLineIndex,
     //UsernameFragment = ???
 };
 public void OnIceCandidate(IceCandidate candidate)
 {
     outerInstance.RunOnUiThread(() =>
     {
         JSONObject json = new JSONObject();
         jsonPut(json, "type", "candidate");
         jsonPut(json, "label", candidate.SdpMLineIndex);
         jsonPut(json, "id", candidate.SdpMid);
         jsonPut(json, "candidate", candidate.Sdp);
         outerInstance.sendMessage(json);
     });
 }
 public void onMessage(string data)
 {
     try
     {
         JSONObject json = new JSONObject(data);
         string type = (string)json.Get("type");
         if (type.Equals("candidate"))
         {
             IceCandidate candidate = new IceCandidate((string)json.Get("id"), json.GetInt("label"), (string)json.Get("candidate"));
             if (outerInstance.queuedRemoteCandidates != null)
             {
                 outerInstance.queuedRemoteCandidates.AddLast(candidate);
             }
             else
             {
                 outerInstance.pc.AddIceCandidate(candidate);
             }
         }
         else if (type.Equals("answer") || type.Equals("offer"))
         {
             SessionDescription sdp = new SessionDescription(SessionDescription.SessionDescriptionType.FromCanonicalForm(type), outerInstance.preferISAC((string)json.Get("sdp")));
             outerInstance.pc.SetRemoteDescription(outerInstance.sdpObserver, sdp);
         }
         else if (type.Equals("bye"))
         {
             outerInstance.logAndToast("Remote end hung up; dropping PeerConnection");
             outerInstance.disconnectAndExit();
         }
         else
         {
             throw new Exception("Unexpected message: " + data);
         }
     }
     catch (JSONException e)
     {
         throw new Exception("Error", e);
     }
 }
示例#4
0
 void Webrtc.PeerConnection.IObserver.OnIceCandidate(Webrtc.IceCandidate p0)
 {
     OnIceCandidate?.Invoke(this, RTCPeerConnectionIceEvent.Create(p0));
 }
 public void OnIceCandidate(IceCandidate p0)
 {
     _listener.OnIceCandidate(p0.ToNet());
 }
示例#6
0
 public static IRTCIceCandidate Create(Webrtc.IceCandidate nativeIceCandidate) =>
 new RTCIceCandidate(nativeIceCandidate);
示例#7
0
 private RTCPeerConnectionIceEvent(Webrtc.IceCandidate nativeIceCandidate) =>
示例#8
0
 public static IRTCPeerConnectionIceEvent Create(Webrtc.IceCandidate nativeIceCandidate) =>
 new RTCPeerConnectionIceEvent(nativeIceCandidate);