【问题标题】:How to launch camera app from my windows 10 app programmatically?如何以编程方式从我的 Windows 10 应用程序启动相机应用程序?
【发布时间】:2016-01-21 10:46:16
【问题描述】:

我正在开发一个 Windows 10 应用程序。请告诉我一种从我的 Windows 商店应用程序中打开相机应用程序的方法。 我知道我们可以使用 LaunchUriAsync 函数打开在注册表中注册了 Uri 的不同应用程序。但问题是我不知道 Microsoft Windows 默认相机应用程序的注册 URI 是什么。如果有人知道相机 URI,请与我分享。或者请告诉我一种打开没有注册 URI 的 windows 商店应用程序的方法。

【问题讨论】:

  • 所以...您的问题是“如何获取默认 Windows 10 应用程序的 URI”?
  • 是的,类似的......如果没有为相机应用注册 URI,那么我们如何从我们的应用打开相机应用?
  • 为什么要打开相机应用?是否要打开相机、拍照并保存以便能够从您的应用程序访问它?
  • 我只想打开相机应用程序......

标签: c# windows-store-apps microsoft-metro windows-8.1 windows-10


【解决方案1】:

使用设备背面的标准相机:

PhotoCamera 相机 = new Microsoft.Devices.PhotoCamera(CameraType.Primary);

但是你捕捉到一些事件来控制相机......

【讨论】:

    【解决方案2】:

    由于各种原因,打开相机应用程序可能会失败,如果用户的 PC 没有可用的相机(即没有网络摄像头等),相机应用程序本身可能会抛出错误消息,所以我强烈建议不要这样做。那就是……

    至少在 Windows 10 上,默认的相机应用程序使用microsoft.windows.camera: 的协议 URI 安装。 (您可以在Control Panel\Programs\Default Programs\Set Associations 下找到已安装的协议)编辑:注意,事实证明此协议未在 Windows 8.1 上注册,因此请记住这一点!

    您可以使用LaunchUriAsync API 调用该 URI,这应该会打开相机应用:

    await Launcher.LaunchUriAsync(new Uri("microsoft.windows.camera:"));
    

    正如我之前所说,这可能会由于多种原因而失败,所以我不推荐这样做。如果您需要该功能,我建议您使用相机 API 并构建您自己的相机控件,因为您可能可以测试用户是否甚至可以打开相机,如果运气好的话。如果您想要一个示例,请参阅我们在 GitHub 上维护的 Camera Sample

    【讨论】:

    • 有没有在没有实际相机的情况下模拟相机?我正在使用 UWP,但我的笔记本电脑没有摄像头
    • @gayan1991 “模拟”是什么意思?必须有一些外围设备来捕捉环境,而这不是你可以“模拟”的。如果笔记本电脑没有内置摄像头,您需要处理通过 USB 连接等场景。
    • 不知道为什么当您可以捕获任何潜在异常时不建议这样做。如果LaunchUriAsync 抛出任何特定异常,您可以根据该异常形成错误消息或预先检查外围设备是否存在。例如,stackoverflow.com/questions/30809094/…
    • @JamesM 因为当您通过移动模拟器启动应用程序时,它会模拟相机,即使它只显示 RGB 颜色。我在想可能还有桌面版
    猜你喜欢
    • 1970-01-01
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    • 2013-07-30
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    相关资源
    最近更新 更多