windows-mobile – PocketPC Camera控制问题

支持
WindowsMo​​bile5(及更高版本)设备,同时保持与使用C#编写的PocketPC 2003的代码兼容性的最佳方法是什么?我们有一个相当大的应用程序被一群不同的客户使用,大致在实际PPC2003设备的人和其他更新的WinMobile5或更新的人之间平均分配 – 即,我们必须继续支持旧设备很长一段时间然而.现在,我需要将相机控制添加到应用程序,至少对于那些拥有相机的设备,这样他们就可以拍摄照片并将其附加到最终发送到Web服务进行处理的其他数据.

到目前为止,我的研究已经发现了Microsoft.WindowsMo​​bile.Forms dll中的CameraCaptureDialog类,但我无法将该引用添加到PocketPC 2003应用程序中.老板不太热衷于将应用程序拆分为单独的PPC2003和WinMobile项目.有没有办法动态加载该DLL,并以这种方式使用CameraCaptureDialog?还有其他选择吗?

最佳答案 从.NetCF PocketPC 2003应用程序访问相机的唯一方法是通过P /调用C/C++ DLL.有一个示例应用程序用于在Intertubes周围浮动(我会找到它 – 我不记得细节,但我认为C代码通过DirectShow访问摄像机),但是它很复杂,可能会赢得’完全按照你的需要做.从好的方面来说,如果你能弄清楚如何做到这一点,它将适用于PocketPC 2003和Windows Mobile 5(即功能性PPC2003应用程序也将在WinMo5设备上运行).

CameraCaptureDialog几乎没用,所以你不会在那里失去太多.理想情况下,作为程序员,您希望相机界面可以通过编程方式进行控制(即设置分辨率,从相机切换到视频,拍照等),但除了打开设备之外,它实际上不会让您做任何事情.内置界面.

更新:这是我提到的示例应用程序:

http://blogs.msdn.com/b/marcpe/archive/2006/03/03/542941.aspx

而且我记错了:这个示例在PocketPC 2003中不起作用(仅限Windows Mobile 5及更高版本).我不知道在PocketPC 2003中访问设备摄像头.至少没有与设备和/或制造商无关的访问摄像头的方法.对于某些设备(例如HP iPaq),制造商通过设备上已存在的DLL(您可以通过P / Invoke访问)公开相机功能.

如果您需要相机集成,则设备必须运行Windows Mobile 5(或更高版本).有些设备可以升级到更新版本的操作系统,但我肯定不得不质疑这一举动.最好转向更现代的设备(例如Droid).

点赞