Exemplo n.º 1
0
        } = 15000;                                  // 15 seconds

        public MediaChannel(
            string signalingEndpoint,
            string channelId,
            Metadata signalingMetadata,
            MediaOption mediaOption)
            : this(signalingEndpoint, channelId, signalingMetadata,
                   mediaOption, CoreApplication.MainView.CoreWindow.Dispatcher)
        {
        }
Exemplo n.º 2
0
 public MediaChannel(
     string signalingEndpoint,
     string channelId,
     Metadata signalingMetadata,
     MediaOption mediaOption,
     CoreDispatcher dispatcher)
 {
     this.signalingEndpoint = signalingEndpoint;
     this.channelId         = channelId;
     this.signalingMetadata = signalingMetadata;
     this.mediaOption       = mediaOption;
     this.role       = mediaOption.GetRequiredRole();
     this.dispatcher = dispatcher;
 }
Exemplo n.º 3
0
        void StartPeerWithClientOffer()
        {
            Logger.Debug("MediaChannel", "StartPeerWithClientOffer");

            Task.Run(async() => {
                var dummyConf = new OfferConfig();

                var rtcConf = NetworkConfiguration.Create(dummyConf, mediaOption);

                var tempMediaOption = new MediaOption()
                {
                    SpeakerDevice          = mediaOption.SpeakerDevice,
                    VideoDownstreamEnabled = true,
                };

                tempPeer = new PeerChannel(rtcConf, tempMediaOption, dispatcher);

                tempPeer.OnError += TempPeer_OnError;
                tempPeer.OnClose += TempPeer_OnClose;

                if (!tempPeer.Initialize())
                {
                    Logger.Debug("MediaChannel", "failed to initialize peer");
                    RunOnUiThread(() => {
                        OnError?.Invoke(ErrorType.PeerCantBuild);
                    });
                    Disconnect();
                }

                var sdp = await tempPeer.GenerateClientOffer();

                CloseTempPeer();

                if (string.IsNullOrEmpty(sdp))
                {
                    Logger.Debug("MediaChannel", "failed to create capabilities");

                    RunOnUiThread(() => {
                        OnError?.Invoke(ErrorType.PeerSdpFailure);
                    });

                    Disconnect();
                }
                else
                {
                    ConnectSignalingChannel(sdp);
                }
            });
        }