HoloLens2实现拍照

需求

要能在HoloLens2中,在使用unity发布的应用中,通过点击按钮来触发类似HoloLens系统的拍照效果。

环境

Visual Studio 2019
Unity2020.3.20f1c1
HoloLens2

方法列表

  • UWP应用中的MediaCapture类
  • unity中的PhotoCapture类
  • 使用HoloLens2系统的原生拍照命令
  • 调用HoloLens设备门户的Rest API
  • 使用WindowsDevicePortalWrapper,即包装好的rest api

方法的用处与弊端

1、MediaCapture和PhotoCapture类都是调用webcam,需要勾选HoloLens2功能中的webcam(网络摄像头)。不过经过尝试发现,他们的拍照效果只有现实环境,不包含全息图。
2、直接戴上HoloLens2,然后说“拍照”。HoloLens2会在短暂几秒后拍照,并且可以在设备门户中找到照片,这点虽然有全息图,但是不算集成在自定义应用中。
3、调用restapi:/api/holographic/mrc/photo (POST)
需要注意,要添加”device security“然后关闭ssl,使用http来访问,否则使用https访问,在使用了账号和密码验证的情况下,还会出现403错误。
可惜的是,这种方式虽然可以正常拍照,不过据尝试,在postman和UWP应用中正常,但是在unity应用条件编译后,发布到HoloLens2上发现报错,调用API总是出现超时,至今未明白原因,希望有大佬共同讨论一下。

在unity编辑器的运行情况

正常

在HoloLens2的运行情况

报错

在POSTMAN的运行情况

HoloLens2实现拍照_第1张图片

关闭SSL
HoloLens2实现拍照_第2张图片

4、WindowsDevicePortalWrapper还没有抽出时间去研究,这里就不多评价了,大家可以去看看

参考链接

unity的photocapture类
设备门户API列表
HoloLens2系统中使用拍照语音命令
MediaCapture类API
调用restapi有403错误的解决方式,科学上网
微软论坛关于HoloLens2的拍照截图的讨论
WindowsDevicePortalWrapper的github下载
本站一位大佬使用HoloLens的restapi进行操作
unity里面发起Post请求,加验证头要转码合并

你可能感兴趣的:(C#,unity,c#,hololens)