public static Webrtc.RTCConfiguration ToNative(this RTCConfiguration configuration) { RTCIceServer[] iceServers = configuration.IceServers ?? new RTCIceServer[] { }; var nativeConfiguration = new Webrtc.RTCConfiguration(); if (configuration.BundlePolicy.HasValue) { nativeConfiguration.BundlePolicy = ((RTCBundlePolicy)configuration.BundlePolicy).ToNative(); } if (configuration.Certificates is not null) { nativeConfiguration.Certificate = (Webrtc.RTCCertificate) (configuration.Certificates?.ElementAt(0).NativeObject); } if (configuration.IceCandidatePoolSize.HasValue) { nativeConfiguration.IceCandidatePoolSize = (int)configuration.IceCandidatePoolSize; } nativeConfiguration.IceServers = iceServers.Select(server => server.ToNative()).ToArray(); if (configuration.IceTransportPolicy.HasValue) { nativeConfiguration.IceTransportPolicy = ((RTCIceTransportPolicy)configuration.IceTransportPolicy).ToNative(); } if (configuration.RtcpMuxPolicy.HasValue) { nativeConfiguration.RtcpMuxPolicy = ((RTCRtcpMuxPolicy)configuration.RtcpMuxPolicy).ToNative(); } if (configuration.SdpSemantics.HasValue) { nativeConfiguration.SdpSemantics = ((SdpSemantics)configuration.SdpSemantics).ToNative(); } return(nativeConfiguration); }
public static RTCConfiguration FromNative(this Webrtc.RTCConfiguration nativeConfiguration) => new RTCConfiguration { BundlePolicy = nativeConfiguration.BundlePolicy.FromNative(), Certificates = new IRTCCertificate[] { RTCCertificate.Create(nativeConfiguration.Certificate) }, IceCandidatePoolSize = (byte)nativeConfiguration.IceCandidatePoolSize, IceServers = nativeConfiguration.IceServers.Select(nativeServer => nativeServer.FromNative()).ToArray(), IceTransportPolicy = nativeConfiguration.IceTransportPolicy.FromNative(), RtcpMuxPolicy = nativeConfiguration.RtcpMuxPolicy.FromNative() };
private RTCPeerConnection(RTCConfiguration configuration) { #if false var rtcConfig = new Webrtc.RTCConfiguration(); rtcConfig.IceServers = new Webrtc.RTCIceServer[] { new Webrtc.RTCIceServer(new [] { "stun:stun.stunprotocol.org:3478", "stun:stun.l.google.com:19302" }) }; var mediaConstraints = new Webrtc.RTCMediaConstraints(null, null); NativeObject = WebRTCme.WebRtc.NativePeerConnectionFactory.PeerConnectionWithConfiguration(rtcConfig, mediaConstraints, this); #endif #if true var nativeConfiguration = configuration.ToNative(); var nativeConstraints = new Webrtc.RTCMediaConstraints(null, null); //NativeDefaultRTCMediaConstraints; NativeObject = WebRTCme.WebRtc.NativePeerConnectionFactory.PeerConnectionWithConfiguration( nativeConfiguration, nativeConstraints, this); #endif }