コード例 #1
0
        private void Stop()
        {
            // set busy cursor
            Cursor = Cursors.WaitCursor;

            // stop current video source
            videoSourcePlayer.SignalToStop();

            // wait 2 seconds until camera stops
            for (int i = 0; i < 50 && videoSourcePlayer.IsRunning; i++)
            {
                Thread.Sleep(100);
            }

            if (videoSourcePlayer.IsRunning)
            {
                videoSourcePlayer.Stop();
            }

            if (videoSource != null)
            {
                videoSource.Dispose();
            }

            Cursor = Cursors.Default;
            videoSourcePlayer.BorderColor = Color.Black;
            viewModel.IsWebcamEnabled     = false;
        }
コード例 #2
0
ファイル: localdevice.cs プロジェクト: John-Leitch/iSpy
        // Protected implementation of Dispose pattern.
        protected virtual void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }

            if (disposing)
            {
                _videoCaptureDevice?.Dispose();
            }

            // Free any unmanaged objects here.
            //
            _disposed = true;
        }
コード例 #3
0
        public void dispose_test()
        {
            var videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
            var videoSource  = new VideoCaptureDevice(videoDevices[0].MonikerString);

            videoSource.NewFrame += new NewFrameEventHandler(video_NewFrame);

            videoSource.Start();

            Assert.IsFalse(videoSource.IsDisposed);
            Assert.IsTrue(videoSource.IsRunning);

            videoSource.Dispose();

            Assert.IsTrue(videoSource.IsDisposed);
            Assert.IsFalse(videoSource.IsRunning);

            Assert.Throws <ObjectDisposedException>(() => videoSource.Start());
        }