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();
            }
        }
Пример #2
0
 private void CloseToolStripMenuItem_Click(object sender, EventArgs e)
 {
     _screenCapturer.Stop();
     this.Close();
 }