public CatCam() { InitializeComponent(); Console.Write("here"); EncoderDevice video = EncoderDevices.FindDevices(EncoderDeviceType.Video)[1]; EncoderDevice audio = EncoderDevices.FindDevices(EncoderDeviceType.Audio).First(); StopJob(); if (video == null || audio == null) { return; } // Starts new job for preview window _job = new LiveJob(); // Checks for a/v devices if (video != null && audio != null) { // Create a new device source. We use the first audio and video devices on the system _deviceSource = _job.AddDeviceSource(video, audio); _deviceSource.PickBestVideoFormat(new Size(640, 480), 15); // Get the properties of the device video SourceProperties sp = _deviceSource.SourcePropertiesSnapshot(); // Resize the preview panel to match the video device resolution set previewPanel.Size = new Size(sp.Size.Width, sp.Size.Height); // Setup the output video resolution file as the preview _job.OutputFormat.VideoProfile.Size = new Size(sp.Size.Width, sp.Size.Height); // Sets preview window to winform panel hosted by xaml window _deviceSource.PreviewWindow = new PreviewWindow(new HandleRef(previewPanel, previewPanel.Handle)); // Make this source the active one _job.ActivateSource(_deviceSource); snapButton.Enabled = true; } else { // Gives error message as no audio and/or video devices found MessageBox.Show("No Video/Audio capture devices have been found.", "Warning"); } }
private void btnPreview_Click(object sender, EventArgs e) { EncoderDevice video = null; EncoderDevice audio = null; GetSelectedVideoAndAudioDevices(out video, out audio); StopJob(); if (video == null) { return; } // Starts new job for preview window _job = new LiveJob(); // Checks for a/v devices if (video != null && audio != null) { // Create a new device source. We use the first audio and video devices on the system _deviceSource = _job.AddDeviceSource(video, audio); // Is it required to show the configuration dialogs ? if(1==2) { // Yes // VFW video device ? if (lstVideoDevices.SelectedItem.ToString().EndsWith("(VFW)", StringComparison.OrdinalIgnoreCase)) { // Yes if (_deviceSource.IsDialogSupported(ConfigurationDialog.VfwFormatDialog)) { _deviceSource.ShowConfigurationDialog(ConfigurationDialog.VfwFormatDialog, (new HandleRef(panelVideoPreview, panelVideoPreview.Handle))); } if (_deviceSource.IsDialogSupported(ConfigurationDialog.VfwSourceDialog)) { _deviceSource.ShowConfigurationDialog(ConfigurationDialog.VfwSourceDialog, (new HandleRef(panelVideoPreview, panelVideoPreview.Handle))); } if (_deviceSource.IsDialogSupported(ConfigurationDialog.VfwDisplayDialog)) { _deviceSource.ShowConfigurationDialog(ConfigurationDialog.VfwDisplayDialog, (new HandleRef(panelVideoPreview, panelVideoPreview.Handle))); } } else { // No if (_deviceSource.IsDialogSupported(ConfigurationDialog.VideoCapturePinDialog)) { _deviceSource.ShowConfigurationDialog(ConfigurationDialog.VideoCapturePinDialog, (new HandleRef(panelVideoPreview, panelVideoPreview.Handle))); } if (_deviceSource.IsDialogSupported(ConfigurationDialog.VideoCaptureDialog)) { _deviceSource.ShowConfigurationDialog(ConfigurationDialog.VideoCaptureDialog, (new HandleRef(panelVideoPreview, panelVideoPreview.Handle))); } if (_deviceSource.IsDialogSupported(ConfigurationDialog.VideoCrossbarDialog)) { _deviceSource.ShowConfigurationDialog(ConfigurationDialog.VideoCrossbarDialog, (new HandleRef(panelVideoPreview, panelVideoPreview.Handle))); } if (_deviceSource.IsDialogSupported(ConfigurationDialog.VideoPreviewPinDialog)) { _deviceSource.ShowConfigurationDialog(ConfigurationDialog.VideoPreviewPinDialog, (new HandleRef(panelVideoPreview, panelVideoPreview.Handle))); } if (_deviceSource.IsDialogSupported(ConfigurationDialog.VideoSecondCrossbarDialog)) { _deviceSource.ShowConfigurationDialog(ConfigurationDialog.VideoSecondCrossbarDialog, (new HandleRef(panelVideoPreview, panelVideoPreview.Handle))); } } } else { // No // Setup the video resolution and frame rate of the video device // NOTE: Of course, the resolution and frame rate you specify must be supported by the device! // NOTE2: May be not all video devices support this call, and so it just doesn't work, as if you don't call it (no error is raised) // NOTE3: As a workaround, if the .PickBestVideoFormat method doesn't work, you could force the resolution in the // following instructions (called few lines belows): 'panelVideoPreview.Size=' and '_job.OutputFormat.VideoProfile.Size=' // to be the one you choosed (640, 480). _deviceSource.PickBestVideoFormat(new Size(640, 480), 15); } // Get the properties of the device video SourceProperties sp = _deviceSource.SourcePropertiesSnapshot(); // Resize the preview panel to match the video device resolution set panelVideoPreview.Size = new Size(sp.Size.Width, sp.Size.Height); // Setup the output video resolution file as the preview _job.OutputFormat.VideoProfile.Size = new Size(sp.Size.Width, sp.Size.Height); // Display the video device properties set toolStripStatusLabel1.Text = sp.Size.Width.ToString() + "x" + sp.Size.Height.ToString() + " " + sp.FrameRate.ToString() + " fps"; // Sets preview window to winform panel hosted by xaml window _deviceSource.PreviewWindow = new PreviewWindow(new HandleRef(panelVideoPreview, panelVideoPreview.Handle)); // Make this source the active one _job.ActivateSource(_deviceSource); btnGrabImage.Enabled = true; toolStripStatusLabel1.Text = "Preview activated"; } else { // Gives error message as no audio and/or video devices found MessageBox.Show("No Video/Audio capture devices have been found.", "Warning"); toolStripStatusLabel1.Text = "No Video/Audio capture devices have been found."; } }
private void viewVideoBtn_Click(object sender, EventArgs e) { EncoderDevice video = null; EncoderDevice audio = null; try { GetSelectedVideoAndAudioDevices(out video, out audio); StopJob(); if(video == null) { return; } // Starts new job for preview window _job = new LiveJob(); // Checks for a/v devices if(video != null && audio != null) { // Create a new device source. We use the first audio and video devices on the system _deviceSource = _job.AddDeviceSource(video, audio); _deviceSource.PickBestVideoFormat(new Size(verticalRes, horizontalRes), framRate); // Get the properties of the device video SourceProperties sp = _deviceSource.SourcePropertiesSnapshot(); // Resize the preview panel to match the video device resolution set panelVideoPreview.Size = new Size(sp.Size.Width, sp.Size.Height); // Setup the output video resolution file as the preview _job.OutputFormat.VideoProfile.Size = new Size(sp.Size.Width, sp.Size.Height); // Display the video device properties set //toolStripStatusLabel1.Text = sp.Size.Width.ToString() + "x" + sp.Size.Height.ToString() + " " + sp.FrameRate.ToString() + " fps"; // Sets preview window to winform panel hosted by xaml window _deviceSource.PreviewWindow = new PreviewWindow(new HandleRef(panelVideoPreview, panelVideoPreview.Handle)); // Make this source the active one _job.ActivateSource(_deviceSource); //btnStartStopRecording.Enabled = true; //btnGrabImage.Enabled = true; debugText = "Preview activated"; } else { // Gives error message as no audio and/or video devices found MessageBox.Show("No Video/Audio capture devices have been found.", "Warning"); debugText = "No Video/Audio capture devices have been found."; } } catch(Exception error) { debugText = error.Message; this.Invoke(new EventHandler(DisplayText)); } }
private void btnPreview_Click(object sender, EventArgs e) { EncoderDevice video = null; EncoderDevice audio = null; GetSelectedVideoAndAudioDevices(out video, out audio); StopJob(); if (video == null) { return; } // Starts new job for preview window _job = new LiveJob(); // Checks for a/v devices if (video != null && audio != null) { // Create a new device source. We use the first audio and video devices on the system _deviceSource = _job.AddDeviceSource(video, audio); // Is it required to show the configuration dialogs ? if (checkBoxShowConfigDialog.Checked) { // Yes // VFW video device ? if (lstVideoDevices.SelectedItem.ToString().EndsWith("(VFW)", StringComparison.OrdinalIgnoreCase)) { // Yes if (_deviceSource.IsDialogSupported(ConfigurationDialog.VfwFormatDialog)) { _deviceSource.ShowConfigurationDialog(ConfigurationDialog.VfwFormatDialog, (new HandleRef(panelVideoPreview, panelVideoPreview.Handle))); } if (_deviceSource.IsDialogSupported(ConfigurationDialog.VfwSourceDialog)) { _deviceSource.ShowConfigurationDialog(ConfigurationDialog.VfwSourceDialog, (new HandleRef(panelVideoPreview, panelVideoPreview.Handle))); } if (_deviceSource.IsDialogSupported(ConfigurationDialog.VfwDisplayDialog)) { _deviceSource.ShowConfigurationDialog(ConfigurationDialog.VfwDisplayDialog, (new HandleRef(panelVideoPreview, panelVideoPreview.Handle))); } } else { // No if (_deviceSource.IsDialogSupported(ConfigurationDialog.VideoCapturePinDialog)) { _deviceSource.ShowConfigurationDialog(ConfigurationDialog.VideoCapturePinDialog, (new HandleRef(panelVideoPreview, panelVideoPreview.Handle))); } if (_deviceSource.IsDialogSupported(ConfigurationDialog.VideoCaptureDialog)) { _deviceSource.ShowConfigurationDialog(ConfigurationDialog.VideoCaptureDialog, (new HandleRef(panelVideoPreview, panelVideoPreview.Handle))); } if (_deviceSource.IsDialogSupported(ConfigurationDialog.VideoCrossbarDialog)) { _deviceSource.ShowConfigurationDialog(ConfigurationDialog.VideoCrossbarDialog, (new HandleRef(panelVideoPreview, panelVideoPreview.Handle))); } if (_deviceSource.IsDialogSupported(ConfigurationDialog.VideoPreviewPinDialog)) { _deviceSource.ShowConfigurationDialog(ConfigurationDialog.VideoPreviewPinDialog, (new HandleRef(panelVideoPreview, panelVideoPreview.Handle))); } if (_deviceSource.IsDialogSupported(ConfigurationDialog.VideoSecondCrossbarDialog)) { _deviceSource.ShowConfigurationDialog(ConfigurationDialog.VideoSecondCrossbarDialog, (new HandleRef(panelVideoPreview, panelVideoPreview.Handle))); } } } else { // No // Setup the video resolution and frame rate of the video device // NOTE: Of course, the resolution and frame rate you specify must be supported by the device! // NOTE2: May be not all video devices support this call, and so it just doesn't work, as if you don't call it (no error is raised) // NOTE3: As a workaround, if the .PickBestVideoFormat method doesn't work, you could force the resolution in the // following instructions (called few lines belows): 'panelVideoPreview.Size=' and '_job.OutputFormat.VideoProfile.Size=' // to be the one you choosed (640, 480). //xyz _deviceSource.PickBestVideoFormat(new Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height), 15); } // Get the properties of the device video SourceProperties sp = _deviceSource.SourcePropertiesSnapshot(); // Resize the preview panel to match the video device resolution set panelVideoPreview.Size = new Size(sp.Size.Width, sp.Size.Height); // Setup the output video resolution file as the preview _job.OutputFormat.VideoProfile.Size = new Size(sp.Size.Width, sp.Size.Height); // Display the video device properties set toolStripStatusLabel1.Text = sp.Size.Width.ToString() + "x" + sp.Size.Height.ToString() + " " + sp.FrameRate.ToString() + " fps"; // Sets preview window to winform panel hosted by xaml window _deviceSource.PreviewWindow = new PreviewWindow(new HandleRef(panelVideoPreview, panelVideoPreview.Handle)); // Make this source the active one _job.ActivateSource(_deviceSource); btnStartStopRecording.Enabled = true; btnGrabImage.Enabled = true; toolStripStatusLabel1.Text = "Preview activated"; } else { // Gives error message as no audio and/or video devices found MessageBox.Show("No Video/Audio capture devices have been found.", "Warning"); toolStripStatusLabel1.Text = "No Video/Audio capture devices have been found."; } }
private void mediaPlay() { _mediaJob = new LiveJob(); _mediaDeviceSource = _mediaJob.AddDeviceSource(video, audio); _mediaDeviceSource.PickBestVideoFormat(new Size(640, 480), 15); _mediaDeviceSource.PreviewWindow = new PreviewWindow(new System.Runtime.InteropServices.HandleRef(videoPanel, videoPanel.Handle)); _mediaJob.ActivateSource(_mediaDeviceSource); }