繁体   English   中英

Camera2 CameraList 与外部摄像头

[英]Camera2 CameraList with External Camera

我正在尝试使用 Camera2 API 通过 usb 获取外部摄像头。 所以我想列出设备的所有摄像头,我希望看到外部摄像头ID,代码如下:

public void testCameraIdList() {

    CameraManager cameraManager = (CameraManager) context.getSystemService(CAMERA_SERVICE);

    String exCamId, backCamId , frontCamId;
    try {
        if(cameraManager != null) {
            for (String cameraId : cameraManager.getCameraIdList()) {
                CameraCharacteristics characteristics = cameraManager.getCameraCharacteristics(cameraId);
                Integer facing = characteristics.get(CameraCharacteristics.LENS_FACING);

                //LENS_FACING_EXTERNAL will return Value: 2
                if (facing != null && facing.equals(CameraCharacteristics.LENS_FACING_EXTERNAL)) {
                    exCamId = cameraId;

                    Log.d(TAG, "exCamId::" + exCamId);
                }
                if (facing != null && facing.equals(CameraCharacteristics.LENS_FACING_BACK)) {
                    backCamId = cameraId;

                    Log.d(TAG, "exCamId::" + backCamId);
                }

                if (facing != null && facing.equals(CameraCharacteristics.LENS_FACING_FRONT)) {
                    frontCamId = cameraId;

                    Log.d(TAG, "exCamId::" + frontCamId);
                }
            }

        }


    } catch (CameraAccessException e) {
        e.printStackTrace();
    }
}

exCamId 始终为 null,因为它无法访问。 Docs中,我猜 Camera2 支持外部摄像头。 我错过了什么吗?

老问题,但希望这个答案对想知道同样问题的人有用。

相机提供程序 HAL 的默认实现不会在getCameraIdList() function 中明确列出外部相机。 它希望您通过CameraManager.AvailabilityCallback监听可用的相机。 源代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM