} = 15000; // 15 seconds public MediaChannel( string signalingEndpoint, string channelId, Metadata signalingMetadata, MediaOption mediaOption) : this(signalingEndpoint, channelId, signalingMetadata, mediaOption, CoreApplication.MainView.CoreWindow.Dispatcher) { }
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; }
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); } }); }