使用Windows 8中的默认相机应用程序在WPF中拍照

时间:2014-08-27 12:59:44

标签: wpf vb.net windows-8 modern-ui

我被要求在vb.net中开发一个软件,其中一个功能应该是可以在平板电脑上拍照。我已经使用了MediaCapture API,它返回了一张照片,但似乎无法在ModernUI应用程序之外显示预览或其他任何内容。它只是纯粹的照片捕捉。

我想了一下如何解决这个问题。我从Android手机获得了一些灵感。我的想法是调用某种API来打开ModernUI模式下的常规Windows 8相机应用程序,让用户拍摄照片,然后通过"返回值"接收它,就像你通常那样做在Android应用中。

现在我的问题是,如果有办法启动Windows 8默认相机应用程序,让它拍照并将其接收回我的WPF桌面应用程序。

我也可以将我的软件开发为ModernUI应用程序,但我从来没有这样做,而且似乎你必须在网上商店发布它,但我只想在公司内部使用它。

我的另一个(简单的愚蠢)想法是要求用户自己打开相机应用程序,拍摄一些照片并稍后返回我的软件。然后,我可以从他们存储的文件夹中接收图像。我想这也可以,但我不喜欢这个想法,因为它不是很直观,看起来很愚蠢。

如果您有想法(或替代方案),如果您能与我分享,我会非常高兴。

提前致谢!

1 个答案:

答案 0 :(得分:2)

不幸的是,没有.NET类允许您访问计算机上的网络摄像头或集成摄像头。这意味着您必须查看本机Windows API并从您的应用程序中调用它。我不能指出你必须使用的正确方法,因为我刚刚使用Microsoft Media Foundation从网络摄像头捕获连续的图像流并将其编码为视频文件。

有些网站在.NET类中封装了这个本机功能,但我不知道它们是否良好:

在Windows应用商店应用中,使用您提到的媒体捕获API可以相对轻松地执行此任务。如果您使用的是Windows 8专业版或企业版,也可以侧载Windows应用商店应用 - 那么您就不必在Windows应用商店中发布应用。

如果您有任何其他问题,请随时提出。