weixin_41341128 2021-05-26 01:18 采纳率: 66.7%
浏览 175
已采纳

C#使用AForge 调用摄像头同时在2个Form上显示画面

我有Form1和Form2  

通过 AForge调用摄像头显示画面,怎么通过btnConnect_Click方法让Form1上的vispShoot1和Form2上的vispShoot2和同时显示摄像头画面?

下面是我在Form1上的vispShoot1显示的摄像头画面的方法。

        public FilterInfoCollection videoDevices;
        public VideoCaptureDevice videoDevice;
        public VideoCapabilities[] videoCapabilities;
        private void btnConnect_Click(object sender, EventArgs e)
        {
            videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
            videoDevice = new VideoCaptureDevice(videoDevices[0].MonikerString);
            videoCapabilities = videoDevice.VideoCapabilities;

            videoDevice.VideoResolution = videoCapabilities[0];
            vispShoot1.VideoSource = videoDevice;
            vispShoot1.Start();
        }

 

  • 写回答

2条回答 默认 最新

  • qq_34835885 2021-05-28 10:55
    关注

    如果是两个界面的话,只需要在你给vispShoot1绑定赋值的后面,加上vispShoo2的绑定赋值就行,拿你的代码来说:

    public FilterInfoCollection videoDevices;

    public VideoCaptureDevice videoDevice;

    public VideoCapabilities[] videoCapabilities;

    private void btnConnect_Click(object sender, EventArgs e)

    {

    videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

    videoDevice = new VideoCaptureDevice(videoDevices[0].MonikerString);

    videoCapabilities = videoDevice.VideoCapabilities;

     

    videoDevice.VideoResolution = videoCapabilities[0];

    vispShoot1.VideoSource = videoDevice;

    vispShoot1.Start();

     

    //在这里加上vispShoot2的赋值即可。  注意在Form2里定义的vispShoot2要设置为public

    form2.vispShoot2.VideoSource = videoDevice;

    form2.vispShoot2.Start();

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?