public SymplePlayerEngineWebRTC(SymplePlayer player) : base(player) { Messenger.Broadcast(SympleLog.LogDebug, "symple:webrtc: init"); #if NETFX_CORE if (!webrtcInitialized) { // needed before calling any webrtc functions http://stackoverflow.com/questions/43331677/webrtc-for-uwp-new-rtcpeerconnection-doesnt-complete-execution if (player.options.CoreDispatcher != null) { WebRTC.Initialize(player.options.CoreDispatcher); } else { WebRTC.Initialize(null); } WebRTC.EnableLogging(LogLevel.LOGLVL_ERROR); WebRTC.EnableLogging(LogLevel.LOGLVL_INFO); WebRTC.EnableLogging(LogLevel.LOGLVL_SENSITIVE); WebRTC.EnableLogging(LogLevel.LOGLVL_VERBOSE); WebRTC.EnableLogging(LogLevel.LOGLVL_WARNING); Messenger.Broadcast(SympleLog.LogInfo, "WebRTC logging enabled, log folder = " + WebRTC.LogFolder.Path + ", filename = " + WebRTC.LogFileName); webrtcInitialized = true; } this.userMediaConstraints = player.options.userMediaConstraints; if (player.options.rtcConfig != null) { this.rtcConfig = player.options.rtcConfig; } else { this.rtcConfig = new RTCConfiguration(); this.rtcConfig.IceServers.Add(new RTCIceServer() { Url = "stun:stun.l.google.com:19302", Username = string.Empty, Credential = string.Empty }); } #endif /* * this.rtcOptions = player.options.rtcOptions || { * optional: [ * { DtlsSrtpKeyAgreement: true } // required for FF <=> Chrome interop * ] * }; */ // Specifies that this client will be the ICE initiator, // and will be sending the initial SDP Offer. this.initiator = player.options.initiator; Messenger.Broadcast(SympleLog.LogDebug, "symple:webrtc: constructor, set this.initiator to " + this.initiator); #if NETFX_CORE // Reference to the active local or remote media stream this.activeStream = null; #endif }