Java Android camera2:如何从已定义的CameraRAID中获取图像?

Java Android camera2:如何从已定义的CameraRAID中获取图像?,java,android,android-camera2,Java,Android,Android Camera2,我使用以下android代码CameraManager服务: CameraManager cameraManager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE); String[] cameraIdList = cameraManager.getCameraIdList(); 现在,我想从列表中的一个cameraIds中获取图像,以便能够在此图像上执行以下代码: ShortBuffer shortDe

我使用以下android代码
CameraManager
服务:

CameraManager cameraManager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE);

String[] cameraIdList = cameraManager.getCameraIdList();
现在,我想从列表中的一个
cameraIds
中获取图像,以便能够在此图像上执行以下代码:

ShortBuffer shortDepthBuffer = image.getPlanes()[0].getBuffer().asShortBuffer();
如何从已定义的
cameraId
中获取此图像


谢谢

使用
Camera2
API没有快速简便的方法来实现这一点。对于特定的
cameraId
,您需要:

  • 打开相机设备:
    cameraManager.openCamera(…)
  • 打开设备后,使用它创建捕获会话:
    cameraDevice.createCaptureSession(…)
  • 为输出和创建捕获请求配置
    ImageReader
    cameraDevice.createCaptureRequest(…)
  • 使用
    captureSession
    处理捕获请求:
    captureSession.capture(…)
  • 因此,您将从
    ImageReader
    获得一个配置为捕获输出的
    图像
  • 因此,对于简单的摄像头应用程序,我建议改为使用at
    CameraX