在 AR Foundation 和 (Android) Native 之间切换相机访问

问题描述 投票:0回答:0

我一直在尝试开发一个应用程序,它可以通过 AR 引导用户浏览环境。基本上,用户的目标是在某些环境中捕捉图像,应用程序应该有助于图像对齐、显示缺失点等。

默认情况下,AR 中的视频源分辨率非常低。所以我想我会开发我自己的 android(接下来是 ios ......)插件,可以在后台访问相机,拍照并保存。我在这方面取得了一些成功,图像看起来清晰并且具有默认分辨率(就像本机应用程序使用的一样)。然而,AR 提要随后滞后了将近 5 秒,这太长了。

我正在使用 Unity 和 AR Foundation(主要是跨平台的原因)。

对于插件,我正在构建一个 Android 库 (.aar),将其导入 Unity,然后使用 Unity 工具集调用 android 类。

当我尝试使用 NativeCamera 资产时,成功捕获后没有延迟。由于此资产基本上会产生相机意图,因此无法使用。

然后我尝试使用 Logcat 看看我可能错过了什么。

通常会出现两个错误:

在所有情况下:

Session 0: Exception while stopping repeating: android.hardware.camera2.CameraAccessException: CAMERA_ERROR (3): cancelRequest:688: Camera 0: Error clearing streaming request: Function not implemented (-38)

有时:

CameraAccessException: CAMERA_DISCONNECTED (2): checkPidStatus:2274: The camera device has been disconnected

滞后期间Logcat注册的是这样的:

Loglag

我一直在尝试同时使用 CameraX 和 Camera2 来实现这一点,在互联网上寻找一些可以扩展的基本可行片段。

我现在正在试验的 Camera2 实现基本上是精简和略微编辑的 https://gist.github.com/RoundSparrow/142b840ca86ba7a46639f23c5c0d195b 。 我主要将捕获模式从重复捕获更改为单次捕获:

.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE)
session.capture()

有什么我想念的吗,或者不可能把这样的东西拉下来吗?

unity3d augmented-reality android-camera2 android-camerax ar-foundation
© www.soinside.com 2019 - 2024. All rights reserved.