当我按下捕获按钮并且没有创建图像时,我尝试预览冻结。有什么建议吗?我可以在一个 Camera2 项目中使用多少个图像阅读器?
问问题
348 次
1 回答
0
对于您创建的每个 CaptureSession,您只能拥有一个 ImageReader。如果您想为每种类型的 Image 使用两个不同的 ImageReader,那么您应该使用两个 CaptureSession。但是您必须非常小心处理两个会话之间的相机资源(例如,您应该在启动其他 CaptureSession 以捕获 YUV_420_888 图像之前关闭 ImageReader for JPEG)。使用多个 CaptureSession 在设备上也很重,通常不推荐。相反,您可以对两种类型的图像使用相同的字节。
public void onImageAvailable(ImageReader imageReader) {
byte[] bytes = null;
Image image = imageReader.acquireLatestImage();
try {
ByteBuffer buffer = image.getPlanes()[0].getBuffer();
bytes = new byte[buffer.capacity()];
buffer.get(bytes);
//use the bytes to manipulate
} catch (Exception e) {
e.printStackTrace();
}
image.close();
imageReader.close();
}
于 2019-02-21T09:12:04.500 回答