首页 > 解决方案 > Android camera2:如何从定义的 cameraId 获取图像?

问题描述

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

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

String[] cameraIdList = cameraManager.getCameraIdList();

现在,我想从此cameraIds列表中的其中一个获取图像,以便能够在此图像上执行以下代码:

ShortBuffer shortDepthBuffer = image.getPlanes()[0].getBuffer().asShortBuffer();

如何从定义的图像中获取此图像cameraId

谢谢 !

标签: javaandroidandroid-camera2

解决方案


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

  1. 打开相机设备:cameraManager.openCamera(...)
  2. 打开设备后,使用它来创建捕获会话:cameraDevice.createCaptureSession(...)
  3. 配置ImageReader输出并创建捕获请求::cameraDevice.createCaptureRequest(...)
  4. 用于captureSession处理您的捕获请求:captureSession.capture(...)
  5. 结果,您将从您为捕获输出配置的文件中获得Image一个ImageReader

因此,对于简单的相机应用程序,我建议改为查看CameraX


推荐阅读