Android 如何让Camera2 api列出外向摄像头';什么时候在安卓手机上运行?

Android 如何让Camera2 api列出外向摄像头';什么时候在安卓手机上运行?,android,camera,android-camera2,google-cardboard,uvc,Android,Camera,Android Camera2,Google Cardboard,Uvc,我正在尝试预览使用Camera2 api连接到android手机的外部ZED立体相机 这台相机是UVC兼容的,当我把它连接到运行在VirtualBox上的android oreo 8.0虚拟机上时,我已经能够预览它了 我正在谷歌的示例项目中使用代码。CameraManager类提供了一个getCameraIdList(),它应该返回连接到设备的所有摄像头的ID,如正面、背面或外部摄像头(在本例中,它应该是my ZED cam或任何其他外部网络摄像头) 当我在虚拟盒上运行示例时,外部摄像头似乎被

我正在尝试预览使用Camera2 api连接到android手机的外部ZED立体相机

这台相机是UVC兼容的,当我把它连接到运行在VirtualBox上的android oreo 8.0虚拟机上时,我已经能够预览它了

我正在谷歌的示例项目中使用代码。CameraManager类提供了一个getCameraIdList(),它应该返回连接到设备的所有摄像头的ID,如正面、背面或外部摄像头(在本例中,它应该是my ZED cam或任何其他外部网络摄像头)

当我在虚拟盒上运行示例时,外部摄像头似乎被检测为背面摄像头

CameraCharacteristics characteristics
                    = manager.getCameraCharacteristics(cameraId);

            Integer facing = characteristics.get(CameraCharacteristics.LENS_FACING);
            String[] cameras = new String[] {"FRONT", "BACK", "EXTERNAL"};

            Log.v(TAG, "Camera faces " + cameras[facing]);
外部ZED凸轮始终显示为背面摄像头。当我尝试在android手机上运行apk时,ZED cam连接到USB C接口,它根本检测不到网络摄像头

事实上,当连接摄像头时,我在手机上运行了这个应用程序,它显示为一个视频设备

然后,我在手机上运行了一个应用程序,该程序使用camera2 api探测摄像头及其所有支持的特性,它只列出了作为我手机一部分的前向和后向摄像头。它没有列出外部摄像头

我用三星A7(2017)试过这一点,一加一和荣誉都运行Android Oreo 8.0。所有人都无法列出外置摄像头,但都显示usb设备已连接,视频设备名为ZED

我不知道他们为什么不来。如何使用camera2 api列出外部摄像头

我最初尝试了使用JNI绑定到使用libuvc之类的本机代码的项目。但是帧速率似乎太慢了。但现在我的重点是使用Camera2API获得预览

仅供参考:我怀疑相机可能没有接收到足够的功率。所以我用一个外部电源连接了摄像头,这个外部电源可以为连接的usb设备供电。结果是一样的


需要明确的是,在使用vbox emulator时,外部设备被列为背面摄像头。使用Genymotion时,我必须使用它的摄像头小部件将连接的ZED摄像头设置为后向或前向摄像头,然后将其列出。

Hi@arun tom。您是否能够使用Camera2 API访问连接到真实设备的网络摄像头?您好,您是否解决了此问题?