Exemplo n.º 1
0
 public static void CaptureScreen(int?index = null)
 {
     lock (_lock)
     {
         VideoSource?.SignalToStop();
         ScreenIndex = index ?? ScreenIndex + 1;
         CameraIndex = -1;
         if (ScreenIndex >= Screen.AllScreens.Length)
         {
             ScreenIndex = 0;
         }
         VideoSource           = new ScreenCaptureStream(Screen.AllScreens[ScreenIndex].Bounds);
         VideoSource.NewFrame += NewFrameHandler;
         VideoSource.Start();
         VideoSourceChanged?.Invoke();
     }
 }
Exemplo n.º 2
0
 public static void CaptureCamera(int?index = null)
 {
     lock (_lock)
     {
         VideoSource?.SignalToStop();
         CameraIndex = index ?? CameraIndex + 1;
         ScreenIndex = -1;
         var videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
         if (CameraIndex >= videoDevices.Count)
         {
             CameraIndex = 0;
         }
         VideoSource           = new VideoCaptureDevice(videoDevices[CameraIndex].MonikerString);
         VideoSource.NewFrame += NewFrameHandler;
         VideoSource.Start();
         VideoSourceChanged?.Invoke();
     }
 }