Windows Mobile Camera Native API
自从上次在淘宝上淘了一个Cingular 8125(国内是Dopod 838)以来,总想试试一些模拟器上不能玩的功能,相机就是其中之一。在SDK中有3个sample,其中两个是基于native code的,还有一个是managed code。Managed code的初始平台是classic上的,我又没有装classic的SDK,只装了个professional的,所以就用那两个native code的例子了。
Camera Capture Graph 是基于DirectShow框架的,它可以提供用户极大的可控性和灵活性,具体可以参考MSDN上的ICaptureGraphBuilder2 Interface和在Windows Mobile 5中使用DirectShow控制摄像头-转这两篇文章。程序运行的界面如下图1所示:
图1:Camera Capture Graph运行界面
界面比较简单,我的感受就是运行速度比后面的Camera Capture要快好多,但是拍摄图像的分辨率比较低,不能自己设置。
再讲讲Camera Capture,它调用了SHCameraCapture,在windows mobile SDK 5.0的时候就已经引入了,大家可以参考MSDN上的文章SHCameraCapture和CSDN上的文章在mobile上调用SHCameraCapture接口进行拍照。SHCameraCapture可以调出照相机进行拍照、摄像,并设置图片或视频文件存放的路径。该程序运行界面如下图2所示:
图2:Camera Capture运行界面
这个功能就比Camera Capture Graph丰富多了,提供模式、图像质量和Video类型的选择等等。选择start以后,我们就可以看到传统的相机界面,如下图3所示:
图3:Windows Mobile上的Camera界面
用其拍摄的照片或者是视屏,默认是存放于设备的”我的图片”和”我的视频”这两个目录下,其照片的效果如下图4所示:
图4:Camera Capture的照片效果
视屏的效果一般,可能是与我这个130万像素的摄像头有关吧。