2

我正在C#为装有 Windows Mobile 6.1 的设备开发 SmartDevice 应用程序(Pocket PC 2003 模板)。我需要使用此设备的相机(照片、视频);为了完成这项工作,我尝试使用CameraCaptureDialog该类,但它不适用于 Pocket PC 应用程序。因此,我在互联网上记录并发现我可能指的是DirectShow API,但问题是我不知道从哪里开始,因为我找不到工作/正确的示例。

我的问题:
这是正确的方法吗?有替代品吗?
我在哪里可以找到一个很好的例子来展示如何做这项工作?

4

4 回答 4

4

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

于 2012-10-09T12:06:25.577 回答
1

DirectShow 是Windows Mobile 6 中的视频捕获 API 。那里有一个视频捕获过滤器,所有东西的设计方式与 Windows 中的几乎相同。

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

要解决它,您有几种方法,第一种是通过 DirectShow.NET 并适当更新它以开始在您的设备上工作,剥离移动操作系统中缺少的部分等。这将为您提供 DS.NET 的双胞胎,但用于移动操作系统。

另一种选择是进行一些 C++ 开发并在该域中实现最小的足够功能集,通过 COM 公开组件。然后,您将从托管代码中引用它,并且事情将连接在一起。另一个明显的选择是使用已经完成上述之一的第三方解决方案。

于 2012-10-13T06:25:55.830 回答
1

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

于 2012-10-08T01:13:25.597 回答
1

这可能有助于您了解 DirectShow 技术。基本上介绍了 DirctShow 并解释了一些要点。但它的 C++ 不是 C#。希望这有帮助

基本视频捕捉

于 2012-10-09T12:24:47.397 回答