VideoPlayer.cs 1.5 KB
using AForge.Video.DirectShow;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CodeTest
{
   public  class VideoPlayerM
    {
        public static VideoPlayerM instance =new VideoPlayerM();
        public AForge.Controls.VideoSourcePlayer videoSourcePlayer = null;
        private VideoPlayerM()
        {

        }
        public int CameraIndex = -1;
        private FilterInfoCollection videoDevices;
        public void Init(string name)
        {
            int i = -1;
            this.videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
            foreach (FilterInfo v in videoDevices)
            {
                i++;
                if (v.Name.Contains(name))
                {
                    CameraIndex = i;
                    break;
                }
            } }

            public void Start()
            {
                if (CameraIndex >= 0)
                {
                    VideoCaptureDevice source = new VideoCaptureDevice(this.videoDevices[CameraIndex].MonikerString);
                    this.videoSourcePlayer.SignalToStop();
                    this.videoSourcePlayer.WaitForStop();
                    this.videoSourcePlayer.VideoSource = source;
                    this.videoSourcePlayer.Start();
                }
            }
        public void Stop()
        {
            if (videoSourcePlayer.IsRunning)
            {
                videoSourcePlayer.Stop();
            }
        }
        }
}