public static IMediaStreamTrack Create(MediaStreamTrackKind mediaStreamTrackKind, string id, MediaTrackConstraints constraints = null) { Webrtc.MediaStreamTrack nativeMediaStreamTrack = null; Webrtc.MediaSource nativeMediaSource = null; switch (mediaStreamTrackKind) { case MediaStreamTrackKind.Audio: var nativeAudioSource = WebRTCme.WebRtc.NativePeerConnectionFactory.CreateAudioSource( (constraints ?? new MediaTrackConstraints { EchoCancellation = new ConstrainBoolean { Value = false }, AutoGainControl = new ConstrainBoolean { Value = false }, NoiseSuppression = new ConstrainBoolean { Value = false } }).ToNative()); nativeMediaSource = nativeAudioSource; nativeMediaStreamTrack = WebRTCme.WebRtc.NativePeerConnectionFactory .CreateAudioTrack(id, nativeAudioSource); break; case MediaStreamTrackKind.Video: var nativeVideoSource = WebRTCme.WebRtc.NativePeerConnectionFactory.CreateVideoSource(false); nativeMediaSource = nativeVideoSource; nativeMediaStreamTrack = WebRTCme.WebRtc.NativePeerConnectionFactory .CreateVideoTrack(id, nativeVideoSource); break; } var mediaStreamTrack = new MediaStreamTrack(nativeMediaStreamTrack); mediaStreamTrack.SetNativeMediaSource(nativeMediaSource); return(mediaStreamTrack); }
private MediaStreamTrack(Webrtc.MediaStreamTrack nativeMediaStreamTrack) : base(nativeMediaStreamTrack) { }
public static IMediaStreamTrack Create(Webrtc.MediaStreamTrack nativeMediaStreamTrack) { return(new MediaStreamTrack(nativeMediaStreamTrack)); }