Ejemplo n.º 1
0
 /// <summary>
 /// Generate an SDP offer.
 /// </summary>
 /// <remarks>Can be called from any thread</remarks>
 /// <returns></returns>
 public void CreateOffer(Callback <RTCSessionDescription> callback)
 {
     SafetyCheck();
     RequireCallbackNotSet(_createOfferCallback);
     _createOfferCallback = new PeerConnectionInterop.CreateSdpResultCallback((userData, result) =>
     {
         _signallingThread.EnsureCurrentThread();
         _createOfferCallback = null;
         Complete(callback, result);
     });
     _pendingCallbacks.Add(callback);
     PeerConnectionInterop.CreateOffer(_handle, _createOfferCallback, IntPtr.Zero);
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Generate an answer after the remote sdp is set
 /// </summary>
 /// <returns></returns>
 /// <remarks>Can be called from any thread</remarks>
 /// <exception cref="Errors.CreateAnswerFailedException" />
 public void CreateAnswer(Callback <RTCSessionDescription> callback)
 {
     if (callback is null)
     {
         throw new ArgumentNullException(nameof(callback));
     }
     SafetyCheck();
     RequireCallbackNotSet(_createAnswerCallback);
     _createAnswerCallback = new PeerConnectionInterop.CreateSdpResultCallback((userData, result) =>
     {
         _signallingThread.EnsureCurrentThread();
         _createAnswerCallback = null;
         Complete(callback, result);
     });
     _pendingCallbacks.Add(callback);
     PeerConnectionInterop.CreateAnswer(_handle, _createAnswerCallback, IntPtr.Zero);
 }