在 Hololens 中 运行 时不调用 OnPhotoCaptureCreated

OnPhotoCaptureCreated not called when running in Hololens

我正在尝试制作一个可以在 Hololens 中拍摄照片的应用程序。我已经按照教程学习了,几乎复制了教程代码。当我 运行 它在我的计算机上使用 Unity 时,它可以工作并用我的网络摄像头拍照。但是当我 运行 它在 Hololens 上时它不起作用。 我有问题的代码部分在这里:

void Start() {

startHeadPosition = Camera.main.transform.position;
newHeadPosition = startHeadPosition;
dIndikator.text = "";

CreateScene("Test");


Debug.Log("\n Taking picture \n");
PhotoCapture.CreateAsync(false, OnPhotoCaptureCreated);
Debug.Log("\n Debug 2 \n");
}

void OnPhotoCaptureCreated(PhotoCapture captureObject)
{
Debug.Log("\n Debug 1 \n");
photoCaptureObject = captureObject;

m_cameraResolution = PhotoCapture.SupportedResolutions.OrderByDescending((res) => res.width * res.height).Last();

CameraParameters c = new CameraParameters();
c.hologramOpacity = 0.0f;
c.cameraResolutionWidth = m_cameraResolution.width;
c.cameraResolutionHeight = m_cameraResolution.height;
c.pixelFormat = CapturePixelFormat.JPEG;

Debug.Log("\n PhotoModeStarted \n");

captureObject.StartPhotoModeAsync(c, OnPhotoModeStarted);
}

在 Unity 中,日志如下所示:

拍照

调试 2

调试 1

PhotoModeStarted

但是在 Hololens 中我只得到:

拍照

调试 2

所以看起来它甚至没有进入 OnPhotoCaptureCreated。我已经为摄像头和麦克风设置了功能,并确保清单文件中有它们,所以我不知道是什么导致了这个问题。我还确保在 Hololens 隐私设置中为应用程序启用了摄像头。

非常感谢任何想法。

通常,PhotoCapture.CreateAsync的回调方法不会被执行,因为您的应用没有使用相机的权限。

转到 Settings/Privacy/Camera/ 并启用 "Let apps use my camera"

所以最后可能是那个Hololens设备的问题。它适用于其他设备,因此我们将其恢复为出厂设置,现在它可以使用了。