繁体   English   中英

使用DirectShow捕获相机

[英]Capture camera using DirectShow

我正在用C#为带有Windows Mobile 6.1的设备开发SmartDevice应用程序(Pocket PC 2003模板)。 我需要使用此设备的相机(照片,视频); 为此,我尝试使用CameraCaptureDialog类,但不适用于Pocket PC应用程序。 因此,我在互联网上记录了文档,发现我可能引用了DirectShow API ,但是问题是我不知道从哪里开始,因为找不到有效的示例。

我的问题:
这是正确的方法吗? 还有替代品吗?
在哪里可以找到一个很好的示例,说明如何进行此工作?

如果您真的想使用DirectShow和NetCF,则可以尝试directshowbetcf: http ://alexmogurenko.com/blog/directshownetcf/。

网上有很多DirectShow的例子。 有一个专门用于将API转换为C#的站点,这使它变得更加容易,也许是http://directshownet.sourceforge.net/about.html 在阅读Microsoft出版社出版的“ programming directshow”一书之前,我一直在与DirectShow斗争。 在那本书的大约三分之一中,这一切似乎都非常容易,而且我能够完成我想要的。 最后,这很像引用任何库并使用该库中的类。 增加的困难是您需要添加包装器,因为它们都是COM对象,但是已经为您完成了。

这可能对您了解DirectShow技术很有用。 基本上是DirctShow的开始,并解释了一些重要的观点。 但是它的C ++不是C#。 希望这有帮助

基本视频捕获

DirectShow是Windows Mobile 6中的视频捕获API 。那里有一个视频捕获筛选器 ,所有内容的设计几乎与Windows中的方式相同。

问题在于,这是一个本机API,而不仅仅是Windows Mobile。 要使用C#开发,您需要一些绑定,而它们却不存在。 在桌面上有DirectShow.NET,这是一个缺少的部分,但它似乎不太适合CE。 但是,您仍然需要填补Windows Mobile中的这一空白。

要解决此问题,您有几种方法,第一种方法是浏览DirectShow.NET并进行适当的更新以开始在设备上工作,去除移动OS中缺少的部件等。这会使DS.NET变成双胞胎,但是用于移动操作系统。

另一个选择是进行一些C ++开发并在该域中实现最少的足够功能集,并通过COM公开组件。 然后,您将从托管代码中引用此内容,然后事物将连接在一起。 另一个明显的选择是使用已经执行上述提到的一项的第三方解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM