C# 调用摄像头 黑屏

问题描述

我在网上下截了一个生成解析二维码的源码,在某些电脑上可以正常运行,但是在win8系统的平板电脑上就不能正常使用,在调用摄像头的时候,摄像头的指示灯都没亮。求大神帮忙解决……

解决方案

解决方案二:
是不是少framework
解决方案三:
不同的系统,不同的电脑,驱动也不一样。
解决方案四:
我使用的是C#的WinForm开发界面。只是调用API连接摄像头,不应该存在驱动不一样的问题,平板电脑本身是可以拍照的。而framework不是WinForm的吧,应该是xaml的。
解决方案五:
贴码
解决方案六:
你的api的问题吧,能够正常连接说明连接那块儿没有问题,就是图像获取的时候出错了
解决方案七:
button开始调用摄像头privatevoidbutton2_Click(objectsender,EventArgse){_doCount=0;_directory=Path.Combine(Application.StartupPath,"temp");if(Directory.Exists(_directory)){varfiles=Directory.GetFiles(_directory);for(inti=0;i<files.Length;i++){File.Delete(files[i]);}}else{Directory.CreateDirectory(_directory);}//_camWorker=newCamWorker(panel1.Handle,0,0,panel1.Width,panel1.Height);_camWorker=newCamWorker(panel1.Handle,10,10,this.panel1.Width,this.panel1.Height);_camWorker.Start();_labelStatus.Text="Cameramisworking...";if(_timer!=null&&_timer.Enabled){_timer.Stop();_timer.Dispose();}_timer=newSystem.Timers.Timer(1000);_timer.Start();_timer.Elapsed+=newSystem.Timers.ElapsedEventHandler(_timer_Elapsed);}调用的类usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Runtime.InteropServices;namespaceGZBC{publicclassCamWorker{privateconstintWM_USER=0x400;privateconstintWS_CHILD=0x40000000;privateconstintWS_VISIBLE=0x10000000;privateconstintWM_CAP_START=WM_USER;privateconstintWM_CAP_STOP=WM_CAP_START+68;privateconstintWM_CAP_DRIVER_CONNECT=WM_CAP_START+10;privateconstintWM_CAP_DRIVER_DISCONNECT=WM_CAP_START+11;privateconstintWM_CAP_SAVEDIB=WM_CAP_START+25;privateconstintWM_CAP_GRAB_FRAME=WM_CAP_START+60;privateconstintWM_CAP_SEQUENCE=WM_CAP_START+62;privateconstintWM_CAP_FILE_SET_CAPTURE_FILEA=WM_CAP_START+20;privateconstintWM_CAP_SEQUENCE_NOFILE=WM_CAP_START+63;privateconstintWM_CAP_SET_OVERLAY=WM_CAP_START+51;privateconstintWM_CAP_SET_PREVIEW=WM_CAP_START+50;privateconstintWM_CAP_SET_CALLBACK_VIDEOSTREAM=WM_CAP_START+6;privateconstintWM_CAP_SET_CALLBACK_ERROR=WM_CAP_START+2;privateconstintWM_CAP_SET_CALLBACK_STATUSA=WM_CAP_START+3;privateconstintWM_CAP_SET_CALLBACK_FRAME=WM_CAP_START+5;privateconstintWM_CAP_SET_SCALE=WM_CAP_START+53;privateconstintWM_CAP_SET_PREVIEWRATE=WM_CAP_START+52;privateIntPtrhWndC;privateboolbWorkStart=false;privateIntPtrmControlPtr;privateintmWidth;privateintmHeight;privateintmLeft;privateintmTop;///<summary>///初始化显示图像///</summary>///<paramname=“handle“>控件的句柄</param>///<paramname=“left“>开始显示的左边距</param>///<paramname=“top“>开始显示的上边距</param>///<paramname=“width“>要显示的宽度</param>///<paramname=“height“>要显示的长度</param>publicCamWorker(IntPtrhandle,intleft,inttop,intwidth,intheight){mControlPtr=handle;mWidth=width;mHeight=height;mLeft=left;mTop=top;}[DllImport("avicap32.dll")]privatestaticexternIntPtrcapCreateCaptureWindowA(byte[]lpszWindowName,intdwStyle,intx,inty,intnWidth,intnHeight,IntPtrhWndParent,intnID);[DllImport("avicap32.dll")]privatestaticexternintcapGetVideoFormat(IntPtrhWnd,IntPtrpsVideoFormat,intwSize);////这里特别注意,因为WinAPI中的long为32位,而C#中的long为64wei,所以需要将lParam该为int//[DllImport("User32.dll")]privatestaticexternboolSendMessage(IntPtrhWnd,intwMsg,intwParam,intlParam);///<summary>///开始显示图像///</summary>publicvoidStart(){if(bWorkStart)return;bWorkStart=true;byte[]lpszName=newbyte[100];hWndC=capCreateCaptureWindowA(lpszName,WS_CHILD|WS_VISIBLE,mLeft,mTop,mWidth,mHeight,mControlPtr,0);if(hWndC.ToInt32()!=0){SendMessage(hWndC,WM_CAP_SET_CALLBACK_VIDEOSTREAM,0,0);SendMessage(hWndC,WM_CAP_SET_CALLBACK_ERROR,0,0);SendMessage(hWndC,WM_CAP_SET_CALLBACK_STATUSA,0,0);SendMessage(hWndC,WM_CAP_DRIVER_CONNECT,0,0);SendMessage(hWndC,WM_CAP_SET_SCALE,1,0);SendMessage(hWndC,WM_CAP_SET_PREVIEWRATE,66,0);SendMessage(hWndC,WM_CAP_SET_OVERLAY,1,0);SendMessage(hWndC,WM_CAP_SET_PREVIEW,1,0);//Global.log.Write(“SendMessage“);}return;}///<summary>///停止显示///</summary>publicvoidStop(){SendMessage(hWndC,WM_CAP_DRIVER_DISCONNECT,0,0);bWorkStart=false;}///<summary>///抓图///</summary>///<paramname=“path“>要保存bmp文件的路径</param>publicvoidGrabImage(stringpath){IntPtrhBmp=Marshal.StringToHGlobalAnsi(path);SendMessage(hWndC,WM_CAP_SAVEDIB,0,hBmp.ToInt32());}}}

解决方案八:
顶上来。求大神……
解决方案九:
不想看源码了,楼主你确定没打错字,开场先说是“在网上下截了一个生成解析二维码的源码”,后面提问居然是调用摄像头。。。
解决方案十:
可它里面有调用摄像头扫描二维码的功能啊,就是扫描二维码的picturebox的地方是黑屏的,所以才解决。运行在win8的系统上。
解决方案十一:
最后有没有解决的?
解决方案十二:
VFW调用摄像头与驱动有很大关系,不是所有的驱动都行的,特别是中星微的通用驱动经常不好使
解决方案十三:
楼主可否发来源码一看419125816@qq.com。
解决方案十四:

解决方案十五:
楼主我也遇到了同样的问题,您处理好了没有

时间: 2024-12-05 02:16:22

C# 调用摄像头 黑屏的相关文章

摄像头黑屏怎么办?

网络的高速发展,让人们拥有了更多的互联沟通方式.越来越多的用户,开始在日常生活中,使用电脑与互联网,与远方的亲朋好友,进行面对面的沟通,即使远在天涯,也如近在咫尺. 想要进行网络视频聊天,一只网络摄像头是必不可少.不过目前市场上摄像头产品种类繁多,价格也从几十元到上千元不等.不同的厂商采用不同的设计方案,有驱的,无驱的,高清的,实惠的等等不一而足. 如此之多的摄像头产品,用户在日常使用中难免遇到这样那样的问题.比如部分用户在使用中,就可能遇到摄像头开启后黑屏.或干脆无法找到摄像头的现象,下面我们

ios-cordova在IOS下Cordova程序调用相机黑屏

问题描述 cordova在IOS下Cordova程序调用相机黑屏 安装CORDOVA CAMERA插件后,拍照时屏幕会变黑,看不到被拍摄的景象.但能正常拍照下来.按home键切换到桌面后重新进入应用就不会黑屏.谁遇到过类似问题?JS调用相机代码: navigator.camera.getPicture(onSuccess onFail { quality: 50 destinationType:navigator.camera.DestinationType.FILE_URI correctOr

Win7系统摄像头黑屏和不能用的解决方法

1.笔记本摄像头不能用 故障现象:我的笔记本有自带的摄像头,以前一直是没问题的,可是今天重装了操作系统,用的是ghost XP sp3,装完之后发现打开摄像头画面是黑的,不知道怎么解决? 解决办法: 1.看一下自己笔记本的品牌和型号. 2.去笔记本电脑品牌的官网. 3.下载本型号笔记本电脑摄像头的驱动程序. 4.重新安装驱动程序,重启电脑,问题解决. 2.Win7摄像头不能用 故障现象:摄像头在Windows XP系统下可以正常使用,但换成Windows 7系统后就无法使用了,摄像头本身是无驱动

win7 32位系统下摄像头黑屏无法使用如何修复

  1.首先鼠标右击win7系统下桌面上的"计算机"图标,然后选择"管理"; 2.在打开的计算机管理界面汇总,点击"设备管理器-->图像设备",然后在摄像头上右键更新驱动程序; 3.在弹出来的窗口中选择"浏览计算机以查找驱动程序软件"; 4.选择"从计算机的设备驱动程序的列表中选择"; 5.然后选择"usb视频设备"驱动更新; 6.更新成功后显示为USB视频设备,如第一次不成功,建

电脑摄像头黑屏怎么办

  摄像头在电脑应用中十分广泛,我们可以使用摄像头拍照,也可以通过摄像头与亲人朋友互相查看,大大方便了我们的网络生活.不过在使用摄像头的时候也会遇到各种各样的问题,下面笔者整理汇总了各种摄像头不能用故障与解决办法,希望对遇到类似问题的朋友有所参考. 摄像头黑屏怎么办 笔记本摄像头不能用怎么解决? 笔记本摄像头怎么开 win7笔记本摄像头打开方法 一.Win7摄像头不能用 故障现象:摄像头在Windows XP系统下可以正常使用,但换成Windows 7系统后就无法使用了,摄像头本身是无驱动产品,

驱动人生更新导致内置摄像头驱动黑屏怎么办

  驱动人生更新导致内置摄像头驱动黑屏可能是在安装驱动的时候,摄像头正在使用,导致部分文件没有覆盖成功,所以,驱动就会安装失败.最有效的方法是把摄像头驱动删除,然后重新安装一次.

前后摄像头切换黑屏问题

问题描述 前后摄像头切换黑屏问题 打开快拍,默认是使用后置摄像头,点切换到前摄像头,再切到后置摄像头有时会是黑屏.请问是什么原因?有什么解决办法? 解决方案 自己开发的还是手机自带的?

摄像头-vfw视频捕捉程序显示黑屏

问题描述 vfw视频捕捉程序显示黑屏 我根据网上的教程用Visual C++6.0做了一个vfw视频捕捉程序,运行时摄像头显示黑屏,但是保存过之后生成的视频文件是正常显示的.请问怎么解决黑屏问题?谢谢了 解决方案 参考:http://www.cnblogs.com/lidabo/p/3701954.html //创建视频采集窗口(注意此窗口与我们所说的显示窗口不同),并设置预览窗口 //IDC_VIDEO_LOCAL 参数是采集窗口的ID,此处直接使用的是显示窗口的id m_CapWnd = c

【COCOS2DX-LUA 脚本开发之十四】解决自定义CPP类通过TOLUA++ BINDING LUACOCOS2D后编译到ANDROID运行黑屏(没有调用自定义CPP类)的问题!

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/lua-game/1388.html 唉,首先说点闲话 – -.Himi搞了不短的时间,这个问题一直没有解决,最后终于在张大(cocos2dx引擎开发者之一 张小明)的指导下解决了此问题. 本章基于上一篇  [COCOS2DX-LUA 脚本开发之十三]  与之前的项目整合 [Cocos2d-X(2.x) 游戏开发系列之二]cocos2dx最新