Для каждой создаваемой CaptureSession у вас может быть только один ImageReader.Если вы хотите использовать два разных ImageReader для каждого типа изображений, то вам следует использовать два CaptureSession.Но вы должны быть очень осторожны с обработкой ресурсов камеры между двумя Сессиями (например, вы должны закрыть ImageReader for JPEG перед запуском другой CaptureSession для захвата изображения YUV_420_888).Использование нескольких 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();
}