private void OpenDevice(object o) { var deviceIndex = (int)o; try { var player = new VideoCaptureElement(); player.BeginInit(); player.VideoCaptureDevice = MultimediaUtil.VideoInputDevices[deviceIndex]; player.VideoCaptureSource = MultimediaUtil.VideoInputDevices[deviceIndex].Name; //player.Width = 320; //player.DesiredPixelWidth = 320; //player.Height = 240; //player.DesiredPixelHeight = 240; //player.FPS = 30; player.EndInit(); player.Play(); IsPlaying = true; _player = player; HasChapters = false; } catch (Exception exc) { const string message = "Unable to load selected device."; Logger.Instance.Warn(message, exc); MessageBox.Show(message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } OnPropertyChanged("Media"); }
private void StartCamera(ref VideoCaptureElement camera, int width, int height, int fps, int deviceIndex) { if (deviceIndex >= MultimediaUtil.VideoInputDevices.Length || deviceIndex < 0) { // Invalid device index should be ignored return; } // Initialize the element camera = new VideoCaptureElement { DesiredPixelWidth = width, DesiredPixelHeight = height, FPS = fps, VideoCaptureDevice = MultimediaUtil.VideoInputDevices[deviceIndex] }; camera.BeginInit(); camera.EndInit(); // Add the control to layout camera.Width = CameraCanvas.Width; camera.Height = CameraCanvas.Height; CameraCanvas.Children.Add(camera); // start the camera stream camera.Play(); }