public void SetVideo()
        {
            var bPublishAudio = _publishAudio.IsChecked.Value;
            var bPublishVideo = _publishVideo.IsChecked.Value;
            var bInputVideo   = _inputVideo.IsChecked.Value;
            var vd            = Session.Video.GetCameraDevices().FirstOrDefault();

            if (vd != null)
            {
                var cap = vd.Capabilitys.FirstOrDefault();
                if (bInputVideo)
                {
                    Session.Video.EnableVideoFakeCamera(true);
                    var screen         = System.Windows.Forms.Screen.PrimaryScreen;
                    var camera_setting = new RTCCameraSetting();
                    camera_setting.RenderHwnd = LocalHwnd;
                    camera_setting.Width      = screen.Bounds.Width;
                    camera_setting.Height     = screen.Bounds.Height;
                    camera_setting.MaxFps     = 15;
                    camera_setting.Bitrate    = 500000;
                    camera_setting.DeviceName = "";
                    camera_setting.DeviceId   = "";
                    var ret = Session.Video.SetCameraParams(camera_setting);
                    SC.Start();
                }
                else
                {
                    SC.Stop();
                    var camera_setting = new RTCCameraSetting();
                    camera_setting.RenderHwnd = LocalHwnd;
                    camera_setting.DeviceName = vd.DeviceName;
                    camera_setting.DeviceId   = vd.DeviceId;
                    camera_setting.Width      = cap.Width;
                    camera_setting.Height     = cap.Height;
                    camera_setting.MaxFps     = 15;
                    camera_setting.Bitrate    = 500000;
                    Session.Video.EnableVideoFakeCamera(false);
                    var ret = Session.Video.SetCameraParams(camera_setting);
                }
            }
            if (bPublishAudio || bPublishVideo)
            {
                var ret = Session.Room.Publish(bPublishAudio, bPublishVideo);
                if (ret == (int)RTCErrorCode.Already_Published)
                {
                    Session.Room.UnPublish();
                    this.localCtl.Invalidate();
                    Session.Room.Publish(bPublishAudio, bPublishVideo);
                }
            }
            else
            {
                Session.Room.UnPublish();
                this.localCtl.Invalidate();
            }
        }
        private void OnPublishAudioClick(object sender, RoutedEventArgs e)
        {
            var bPublishAudio = _publishAudio.IsChecked.Value;
            var bPublishVideo = _publishVideo.IsChecked.Value;

            Session.Room.UnPublish();
            if (bPublishAudio || bPublishVideo)
            {
                var vd = Session.Video.GetCameraDevices().FirstOrDefault();
                if (vd != null)
                {
                    var cap = vd.Capabilitys.FirstOrDefault();
                    RTCCameraSetting camera_setting = new RTCCameraSetting();
                    camera_setting.RenderHwnd = LocalHwnd;
                    camera_setting.DeviceName = vd.DeviceName;
                    camera_setting.DeviceId   = vd.DeviceId;
                    camera_setting.Width      = cap.Width;
                    camera_setting.Height     = cap.Height;
                    camera_setting.MaxFps     = 15;
                    camera_setting.Bitrate    = 500000;
                    Session.Video.SetCameraParams(camera_setting);
                }
                //var recordDevice = Session.Audio.GetRecordingDevices().FirstOrDefault();
                //RTCAudioDeviceSetting audio_setting = new RTCAudioDeviceSetting();
                //audio_setting.DeviceIndex = (short)recordDevice.DeviceIndex;
                //audio_setting.DeviceType = RTCWindowsDeviceType.wdt_DefaultDevice;
                //var ret = Session.Audio.SetRecordingDevice(audio_setting);

                //var playoutDevice = Session.Audio.GetPlayoutDevices().FirstOrDefault();
                //audio_setting = new RTCAudioDeviceSetting();
                //audio_setting.DeviceIndex = (short)playoutDevice.DeviceIndex;
                //audio_setting.DeviceType = RTCWindowsDeviceType.wdt_DefaultDevice;
                //ret = Session.Audio.SetPlayoutDevice(audio_setting);
                Session.Room.Publish(bPublishAudio, bPublishVideo);
            }
        }