private ScreenCaptureSourceSettings CreateScreenCaptureSource()
        {
            var source = new ScreenCaptureSourceSettings
            {
                Mode         = VFScreenCaptureMode.Window,
                WindowHandle = IntPtr.Zero
            };

            try
            {
                if (windowCaptureForm == null)
                {
                    MessageBox.Show("Window for screen capture is not specified.");
                    return(null);
                }

                source.WindowHandle = windowCaptureForm.CapturedWindowHandle;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            if (source.WindowHandle == IntPtr.Zero)
            {
                MessageBox.Show("Incorrect window title for screen capture.");
                return(null);
            }

            source.FrameRate = (float)Convert.ToDouble(edScreenFrameRate.Text);

            return(source);
        }
Beispiel #2
0
        private async void btStart_Click(object sender, EventArgs e)
        {
            edLog.Text = string.Empty;

            if (!LoadImages())
            {
                return;
            }

            var source = new ScreenCaptureSourceSettings
            {
                Left      = 0,
                Right     = _imageWidth,
                Top       = 0,
                Bottom    = _imageHeight,
                FrameRate = Convert.ToInt32(edVideoFrameRate.Text),
                Mode      = ScreenCaptureMode.Color
            };

            VideoCapture1.Screen_Capture_Source = source;

            VideoCapture1.Audio_PlayAudio   = false;
            VideoCapture1.Audio_RecordAudio = false;

            VideoCapture1.Mode            = VideoCaptureMode.ScreenCapture;
            VideoCapture1.Output_Format   = new MP4Output();
            VideoCapture1.Output_Filename = edOutputFile.Text;

            VideoCapture1.Debug_Mode = cbDebug.Checked;

            await VideoCapture1.StartAsync();
        }
Beispiel #3
0
        private async void btStart_Click(object sender, EventArgs e)
        {
            VideoCapture1.Debug_Mode      = cbDebugMode.Checked;
            VideoCapture1.Debug_Dir       = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "VisioForge");
            VideoCapture1.Debug_Telemetry = cbTelemetry.Checked;

            // configure source
            var screenSource = new ScreenCaptureSourceSettings();

            screenSource.Mode = ScreenCaptureMode.Screen;

            screenSource.FullScreen = rbScreenFullScreen.Checked;
            screenSource.Top        = Convert.ToInt32(edScreenTop.Text);
            screenSource.Bottom     = Convert.ToInt32(edScreenBottom.Text);
            screenSource.Left       = Convert.ToInt32(edScreenLeft.Text);
            screenSource.Right      = Convert.ToInt32(edScreenRight.Text);

            screenSource.DisplayIndex    = Convert.ToInt32(cbScreenCaptureDisplayIndex.Text);
            screenSource.FrameRate       = Convert.ToInt32(edScreenFrameRate.Text);
            screenSource.GrabMouseCursor = cbScreenCapture_GrabMouseCursor.Checked;
            screenSource.AllowDesktopDuplicationEngine = cbScreenCapture_DesktopDuplication.Checked;
            VideoCapture1.Screen_Capture_Source        = screenSource;

            // audio capture
            if (cbAudioCapture.Checked)
            {
                VideoCapture1.Audio_PlayAudio   = false;
                VideoCapture1.Audio_RecordAudio = true;

                // select first audio device with default parameters
                if (VideoCapture1.Audio_CaptureDevices().Any())
                {
                    VideoCapture1.Audio_CaptureDevice = new AudioCaptureSource(VideoCapture1.Audio_CaptureDevices()[0].Name);
                }
            }
            else
            {
                VideoCapture1.Audio_PlayAudio   = false;
                VideoCapture1.Audio_RecordAudio = false;
            }

            // configure output
            if (cbCapture.Checked)
            {
                VideoCapture1.Mode            = VideoCaptureMode.ScreenCapture;
                VideoCapture1.Output_Format   = new MP4Output();
                VideoCapture1.Output_Filename = edOutput.Text;
            }
            else
            {
                VideoCapture1.Mode = VideoCaptureMode.ScreenPreview;
            }

            await VideoCapture1.StartAsync();
        }
Beispiel #4
0
        private ScreenCaptureSourceSettings CreateScreenCaptureSource(int screenID, bool forcedFullScreen)
        {
            var source = new ScreenCaptureSourceSettings();

            if (rbScreenCaptureWindow.IsChecked == true)
            {
                source.Mode = ScreenCaptureMode.Window;

                source.WindowHandle = IntPtr.Zero;

                try
                {
                    if (windowCaptureForm == null)
                    {
                        MessageBox.Show("Window for screen capture is not specified.");
                        return(null);
                    }

                    source.WindowHandle = windowCaptureForm.CapturedWindowHandle;
                }
                // ReSharper disable once EmptyGeneralCatchClause
                catch (Exception ex)
                {
                    Debug.WriteLine(ex.ToString());
                }

                if (source.WindowHandle == IntPtr.Zero)
                {
                    MessageBox.Show("Incorrect window title for screen capture.");
                    return(null);
                }
            }
            else
            {
                source.Mode = ScreenCaptureMode.Screen;
            }

            source.FrameRate       = (float)Convert.ToDouble(edScreenFrameRate.Text);
            source.FullScreen      = rbScreenFullScreen.IsChecked == true || forcedFullScreen;
            source.Top             = Convert.ToInt32(edScreenTop.Text);
            source.Bottom          = Convert.ToInt32(edScreenBottom.Text);
            source.Left            = Convert.ToInt32(edScreenLeft.Text);
            source.Right           = Convert.ToInt32(edScreenRight.Text);
            source.GrabMouseCursor = cbScreenCapture_GrabMouseCursor.IsChecked == true;
            source.DisplayIndex    = screenID;
            source.AllowDesktopDuplicationEngine = cbScreenCapture_DesktopDuplication.IsChecked == true;

            return(source);
        }
Beispiel #5
0
        private ScreenCaptureSourceSettings CreateScreenCaptureSource(int screenID, bool forcedFullScreen)
        {
            var source = new ScreenCaptureSourceSettings();

            if (rbScreenCaptureWindow.Checked)
            {
                source.Mode = VFScreenCaptureMode.Window;

                source.WindowHandle = IntPtr.Zero;

                try
                {
                    source.WindowHandle = FindWindow(edScreenCaptureWindowName.Text, null);
                }
                // ReSharper disable once EmptyGeneralCatchClause
                catch
                {
                }

                if (source.WindowHandle == IntPtr.Zero)
                {
                    MessageBox.Show("Incorrect window title for screen capture.");
                    return(null);
                }
            }
            else
            {
                source.Mode = VFScreenCaptureMode.Screen;
            }

            source.FrameRate       = (float)Convert.ToDouble(edScreenFrameRate.Text);
            source.FullScreen      = rbScreenFullScreen.Checked || forcedFullScreen;
            source.Top             = Convert.ToInt32(edScreenTop.Text);
            source.Bottom          = Convert.ToInt32(edScreenBottom.Text);
            source.Left            = Convert.ToInt32(edScreenLeft.Text);
            source.Right           = Convert.ToInt32(edScreenRight.Text);
            source.GrabMouseCursor = cbScreenCapture_GrabMouseCursor.Checked;
            source.DisplayIndex    = screenID;
            source.AllowDesktopDuplicationEngine = cbScreenCapture_DesktopDuplication.Checked;

            return(source);
        }
Beispiel #6
0
        private async void btStart_Click(object sender, EventArgs e)
        {
            VideoCapture1.Debug_Mode      = cbDebugMode.Checked;
            VideoCapture1.Debug_Dir       = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\VisioForge\\";
            VideoCapture1.Debug_Telemetry = cbTelemetry.Checked;

            // configure source
            var screenSource = new ScreenCaptureSourceSettings();

            screenSource.Mode = VFScreenCaptureMode.Screen;

            screenSource.FullScreen = rbScreenFullScreen.Checked;
            screenSource.Top        = Convert.ToInt32(edScreenTop.Text);
            screenSource.Bottom     = Convert.ToInt32(edScreenBottom.Text);
            screenSource.Left       = Convert.ToInt32(edScreenLeft.Text);
            screenSource.Right      = Convert.ToInt32(edScreenRight.Text);

            screenSource.DisplayIndex    = Convert.ToInt32(cbScreenCaptureDisplayIndex.Text);
            screenSource.FrameRate       = Convert.ToInt32(edScreenFrameRate.Text);
            screenSource.GrabMouseCursor = cbScreenCapture_GrabMouseCursor.Checked;
            screenSource.AllowDesktopDuplicationEngine = cbScreenCapture_DesktopDuplication.Checked;
            VideoCapture1.Screen_Capture_Source        = screenSource;

            // disable audio
            VideoCapture1.Audio_PlayAudio   = false;
            VideoCapture1.Audio_RecordAudio = false;

            // configure output
            if (cbCapture.Checked)
            {
                VideoCapture1.Mode            = VFVideoCaptureMode.ScreenCapture;
                VideoCapture1.Output_Format   = new VFMP4v8v10Output();
                VideoCapture1.Output_Filename = edOutput.Text;
            }
            else
            {
                VideoCapture1.Mode = VFVideoCaptureMode.ScreenPreview;
            }

            await VideoCapture1.StartAsync();
        }
Beispiel #7
0
        private void btStart_Click(object sender, EventArgs e)
        {
            // configure source
            var screenSource = new ScreenCaptureSourceSettings();

            screenSource.Mode = VFScreenCaptureMode.Screen;

            screenSource.FullScreen = rbScreenFullScreen.Checked;
            screenSource.Top        = Convert.ToInt32(edScreenTop.Text);
            screenSource.Bottom     = Convert.ToInt32(edScreenBottom.Text);
            screenSource.Left       = Convert.ToInt32(edScreenLeft.Text);
            screenSource.Right      = Convert.ToInt32(edScreenRight.Text);

            screenSource.DisplayIndex    = Convert.ToInt32(cbScreenCaptureDisplayIndex.Text);
            screenSource.FrameRate       = Convert.ToInt32(edScreenFrameRate.Text);
            screenSource.GrabMouseCursor = cbScreenCapture_GrabMouseCursor.Checked;
            screenSource.AllowDesktopDuplicationEngine = cbScreenCapture_DesktopDuplication.Checked;
            VideoCapture1.Screen_Capture_Source        = screenSource;

            // disable audio
            VideoCapture1.Audio_PlayAudio   = false;
            VideoCapture1.Audio_RecordAudio = false;

            // configure output
            if (cbCapture.Checked)
            {
                VideoCapture1.Mode            = VFVideoCaptureMode.ScreenCapture;
                VideoCapture1.Output_Format   = new VFMP4v8v10Output();
                VideoCapture1.Output_Filename = edOutput.Text;
            }
            else
            {
                VideoCapture1.Mode = VFVideoCaptureMode.ScreenPreview;
            }

            this.VideoCapture1.Start();
        }