SignalToStop() публичный Метод

Signal video source to stop its work.
Signals video source to stop its background thread, stop to provide new frames and free resources.
public SignalToStop ( ) : void
Результат void
Пример #1
0
 private void button2_Click(object sender, EventArgs e)
 {
     if (button2.Text == "Tomar Foto")
     {
         AForge.Video.DirectShow.FilterInfoCollection videosources = new AForge.Video.DirectShow.FilterInfoCollection(AForge.Video.DirectShow.FilterCategory.VideoInputDevice);
         if (videosources != null)
         {
             videosource           = new AForge.Video.DirectShow.VideoCaptureDevice(videosources[0].MonikerString);
             videosource.NewFrame += (s, a) => pictureBox2.Image = (Bitmap)a.Frame.Clone();
             videosource.Start();
             button2.Text = "Capturar";
         }
     }
     else
     {
         pictureBox1.Image = pictureBox2.Image;
         if (videosource != null && videosource.IsRunning)
         {
             videosource.SignalToStop();
             videosource = null;
         }
         pictureBox2.Image = null;
         button2.Text      = "Tomar Foto";
     }
 }
Пример #2
0
        public void GetFrame()
        {
            // enumerate video devices
            var videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

            //foreach (FilterInfo item in videoDevices)
            //{

            //videoSource = new VideoCaptureDevice(item.MonikerString);
            videoSource = new VideoCaptureDevice(videoDevices[1].MonikerString);
            //videoSource.DesiredFrameSize = new Size(160, 120);

            // create video source
            //VideoCaptureDevice videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);

            // set NewFrame event handler
            videoSource.NewFrame += new NewFrameEventHandler(video_NewFrame);
            // start the video source
            videoSource.Start();
            // ...
            System.Threading.Thread.Sleep(500);
            Trace.WriteLine("FramesReceived: " + videoSource.FramesReceived);
            // signal to stop
            videoSource.SignalToStop();
            // ...
            //}
        }
Пример #3
0
        public void StopVideo(VideoCaptureDevice videoSource)
        {
            if (videoSource != null && videoSource.IsRunning)
            {
                // stop the video source
                videoSource.SignalToStop();

                videoSource = null;
                // ...
            }
        }
Пример #4
0
        private static void Main(string[] args)
        {
            Trace.Listeners.Add(new ConsoleTraceListener());

            // enumerate video devices
            var videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

            if (videoDevices.Count > 0)
            {
                // create video source
                var videoSource = new VideoCaptureDevice(
                    videoDevices[0].MonikerString);

                int maxCapabilitieIndex = videoSource.VideoCapabilities.Count() - 1;

                if (maxCapabilitieIndex > 0)
                {
                    VideoCapabilities resolution = videoSource.VideoCapabilities[maxCapabilitieIndex];
                    videoSource.VideoResolution = resolution;

                    videoSource.SetCameraProperty(CameraControlProperty.Exposure, +20, CameraControlFlags.Manual);

                    // set NewFrame event handler
                    videoSource.NewFrame += video_NewFrame;

                    // start the video source
                    videoSource.Start();

                    int count = 0;
                    do
                    {
                        Thread.Sleep(100);
                    } while (imageCount < 20);

                    videoSource.SignalToStop();
                }
                else
                {
                    //no capabilities
                }
            }

            // ...
        }
Пример #5
0
        private void TakePhoto()
        {
            try
            {
                //webCamPictureBox.Image.Save("snapshot.png", System.Drawing.Imaging.ImageFormat.Png);
                btnSalvarFoto.Enabled = false;
                btnCapturar.Enabled   = true;

                //webCamPictureBox.ImageLocation = "snapshot.png";

                if (videoSource != null && videoSource.IsRunning)
                {
                    videoSource.SignalToStop();
                    videoSource = null;
                }


                picWebCam.Image.Save(diretorioImagem + txtNomeAluno.Text + ".jpg", System.Drawing.Imaging.ImageFormat.Png);
            }
            catch (Exception ex)
            {
            }
        }
        private void InternalStart()
        {
            var videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

            if (videoDevices.Count == 0)
            {
                TraceFileHelper.Error("No video devices found.");
            }

            string moniker = null;

            foreach (FilterInfo videoDevice in videoDevices)
            {
                if (videoDevice.Name == m_VideoDeviceName)
                {
                    moniker = videoDevice.MonikerString;
                    break;
                }
            }

            if (moniker == null)
            {
                TraceFileHelper.Error("Device not found");
                return;
            }

            // create video source
            var videoSource = new VideoCaptureDevice(moniker);

            int maxCapabilitieIndex = videoSource.VideoCapabilities.Count() - 1;

            if (maxCapabilitieIndex < 0)
            {
                TraceFileHelper.Warning("No camera image capabilities found.");
                return;
            }

            VideoCapabilities resolution = videoSource.VideoCapabilities[maxCapabilitieIndex];
            videoSource.VideoResolution = resolution;

            // set NewFrame event handler
            videoSource.NewFrame += video_NewFrame;

            // start the video source
            videoSource.Start();

            do
            {
                Thread.Sleep(100);
            } while (! m_StopRequested);

            videoSource.SignalToStop();

            m_ProcessingThread = null;
        }