/// <summary> /// 开启摄像头 /// </summary> public void StartWebCam() { var lpszName = new byte[100]; var lpszVer = new byte[100]; AviCapture.capGetDriverDescriptionA(1, lpszName, 100, lpszVer, 100); this._lwndC = AviCapture.capCreateCaptureWindowA(lpszName, AviCapture.WsVisible + AviCapture.WsChild, 0, 0, _mWidth, _mHeight, _mControlPtr, 0); if (this.CapDriverConnect(this._lwndC, 0)) { this.CapPreviewRate(this._lwndC, 66); this.CapPreview(this._lwndC, true); this.CapOverlay(this._lwndC, true); var bitmapinfo = new AviCapture.Bitmapinfo(); bitmapinfo.bmiHeader.biSize = AviCapture.SizeOf(bitmapinfo.bmiHeader); bitmapinfo.bmiHeader.biWidth = this._mWidth; bitmapinfo.bmiHeader.biHeight = this._mHeight; bitmapinfo.bmiHeader.biPlanes = 1; bitmapinfo.bmiHeader.biBitCount = 24; this.CapSetVideoFormat(this._lwndC, ref bitmapinfo, AviCapture.SizeOf(bitmapinfo)); this._mFrameEventHandler = new AviCapture.FrameEventHandler(FrameCallBack); this.CapSetCallbackOnFrame(this._lwndC, this._mFrameEventHandler); AviCapture.SetWindowPos(this._lwndC, 0, 0, 0, _mWidth, _mHeight, 6); } }
/// <summary> /// 开启摄像头 /// </summary> public void StartWebCam() { byte[] lpszName = new byte[100]; byte[] lpszVer = new byte[100]; AviCapture.capGetDriverDescriptionA(1, lpszName, 100, lpszVer, 100); this.lwndC = AviCapture.capCreateCaptureWindowA(lpszName, AviCapture.WS_VISIBLE + AviCapture.WS_CHILD, 0, 0, mWidth, mHeight, mControlPtr, 0); if (this.capDriverConnect(this.lwndC, 0)) { this.capPreviewRate(this.lwndC, 66); this.capPreview(this.lwndC, true); this.capOverlay(this.lwndC, true); AviCapture.BITMAPINFO bitmapinfo = new AviCapture.BITMAPINFO(); bitmapinfo.bmiHeader.biSize = AviCapture.SizeOf(bitmapinfo.bmiHeader); bitmapinfo.bmiHeader.biWidth = this.mWidth; bitmapinfo.bmiHeader.biHeight = this.mHeight; bitmapinfo.bmiHeader.biPlanes = 1; bitmapinfo.bmiHeader.biBitCount = 24; this.capSetVideoFormat(this.lwndC, ref bitmapinfo, AviCapture.SizeOf(bitmapinfo)); this.mFrameEventHandler = new AviCapture.FrameEventHandler(FrameCallBack); this.capSetCallbackOnFrame(this.lwndC, this.mFrameEventHandler); AviCapture.SetWindowPos(this.lwndC, 0, 0, 0, mWidth, mHeight, 6); } }
private bool CapSetCallbackOnFrame(IntPtr lwnd, AviCapture.FrameEventHandler lpProc) { return(AviCapture.SendMessage(lwnd, AviCapture.WmCapSetCallbackFrame, 0, lpProc)); }
private bool capSetCallbackOnFrame(IntPtr lwnd, AviCapture.FrameEventHandler lpProc) { return(AviCapture.SendMessage(lwnd, AviCapture.WM_CAP_SET_CALLBACK_FRAME, 0, lpProc)); }