主题:C#如何同时使用两个摄像头?
下面是使用一个摄像头的代码:
private void OpenCapture()
{
int intWidth = this.panel1.Width;
int intHeight = this.panel1.Height;
int intDevice = 0;
string refDevice = intDevice.ToString();
// hHwnd = Camera.capCreateCaptureWindowA(ref refDevice, 1342177280, 0, 0, 640, 480, this.panel1.Handle.ToInt32(), 0);
hHwnd = Camera1.capCreateCaptureWindowA(ref refDevice, 1342177280, 0, 0, 640, 480, this.panel1.Handle.ToInt32(), 0);
if (Camera1.SendMessage(hHwnd, 0x40a, 0, 0) > 0)
{
Camera1.SendMessage(this.hHwnd, 0x435, -1, 0);
Camera1.SendMessage(this.hHwnd, 0x434, 0x42, 0);
Camera1.SendMessage(this.hHwnd, 0x432, -1, 0);
Camera1.SetWindowPos(this.hHwnd, 1, 0, 0, intWidth, intHeight, 6);
}
else
{
Camera1.DestroyWindow(this.hHwnd);
}
}
但是我想同时使用两个摄像头,请问大家几个问题:
1、int intDevice = 0;是什么意思?起初我猜测0表示第一个摄像头,那么1不就表示第二个摄像头吗?经过我的尝试发现并非如此,那么0到底是什么意思呢?
2、hHwnd = Camera1.capCreateCaptureWindowA(ref refDevice, 1342177280, 0, 0, 640, 480, this.panel1.Handle.ToInt32(), 0);各个参数的含义,这个我从msdn中查到了,但是对于第二个参数和最后一个参数还是不理解,希望大家给以解答。
3、Camera1.SendMessage(hHwnd, 0x40a, 0, 0),第一个参数是句柄,第二个参数表示的是一个消息,是哪个消息呢?后两个参数是到底为消息提供什么样的东西呢?
4、 Camera1.SendMessage(this.hHwnd, 0x435, -1, 0);
Camera1.SendMessage(this.hHwnd, 0x434, 0x42, 0);
Camera1.SendMessage(this.hHwnd, 0x432, -1, 0);
分别表示的意思是什么?
5、在一个程序中,能不能同时使用两个摄像头,需不需要第三方软件的支持?
问题有点多,希望大家见谅!谢谢!
private void OpenCapture()
{
int intWidth = this.panel1.Width;
int intHeight = this.panel1.Height;
int intDevice = 0;
string refDevice = intDevice.ToString();
// hHwnd = Camera.capCreateCaptureWindowA(ref refDevice, 1342177280, 0, 0, 640, 480, this.panel1.Handle.ToInt32(), 0);
hHwnd = Camera1.capCreateCaptureWindowA(ref refDevice, 1342177280, 0, 0, 640, 480, this.panel1.Handle.ToInt32(), 0);
if (Camera1.SendMessage(hHwnd, 0x40a, 0, 0) > 0)
{
Camera1.SendMessage(this.hHwnd, 0x435, -1, 0);
Camera1.SendMessage(this.hHwnd, 0x434, 0x42, 0);
Camera1.SendMessage(this.hHwnd, 0x432, -1, 0);
Camera1.SetWindowPos(this.hHwnd, 1, 0, 0, intWidth, intHeight, 6);
}
else
{
Camera1.DestroyWindow(this.hHwnd);
}
}
但是我想同时使用两个摄像头,请问大家几个问题:
1、int intDevice = 0;是什么意思?起初我猜测0表示第一个摄像头,那么1不就表示第二个摄像头吗?经过我的尝试发现并非如此,那么0到底是什么意思呢?
2、hHwnd = Camera1.capCreateCaptureWindowA(ref refDevice, 1342177280, 0, 0, 640, 480, this.panel1.Handle.ToInt32(), 0);各个参数的含义,这个我从msdn中查到了,但是对于第二个参数和最后一个参数还是不理解,希望大家给以解答。
3、Camera1.SendMessage(hHwnd, 0x40a, 0, 0),第一个参数是句柄,第二个参数表示的是一个消息,是哪个消息呢?后两个参数是到底为消息提供什么样的东西呢?
4、 Camera1.SendMessage(this.hHwnd, 0x435, -1, 0);
Camera1.SendMessage(this.hHwnd, 0x434, 0x42, 0);
Camera1.SendMessage(this.hHwnd, 0x432, -1, 0);
分别表示的意思是什么?
5、在一个程序中,能不能同时使用两个摄像头,需不需要第三方软件的支持?
问题有点多,希望大家见谅!谢谢!