protected void createCameraPreview () {
try {
SurfaceTexture texture = textureView.getSurfaceTexture();
assert texture != null;
Log.d(TAG, "width: " + imageDimension.getWidth() + " " + "height: " + imageDimension.getHeight());
texture.setDefaultBufferSize(imageDimension.getWidth(), imageDimension.getHeight());
Surface surface = new Surface(texture);
captureRequestBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
captureRequestBuilder.addTarget(surface);
manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
characteristics = manager.getCameraCharacteristics(cameraDevice.getId());
List<CaptureRequest.Key<?>> reqs = new ArrayList<CaptureRequest.Key<?>>();
reqs = characteristics.getAvailableCaptureRequestKeys(); //characteristics.getAvailableCaptureRequestKeys();
for (int i=0; i<reqs.size(); i++) {
CaptureRequest.Key<?> reqss;
// Log.d(TAG, "captureRequestKey: " + reqs.get(i));
reqss = reqs.get(i);
Log.d(TAG, "KEY: " + reqss.getName() + " " + "VALUE " + captureRequestBuilder.build().get(reqss));
// Log.d(TAG, "VALUE: " + reqss.
}
cameraDevice.createCaptureSession(Arrays.asList(surface), new CameraCaptureSession.StateCallback() {
@Override
public void onConfigured(@NonNull CameraCaptureSession cameraCaptureSession) {
//The camera is already closed
if (null == cameraDevice) {
return;
}
// When the session is ready, we start displaying the preview.
cameraCaptureSessions = cameraCaptureSession;
updatePreview();
}
@Override
public void onConfigureFailed(@NonNull CameraCaptureSession cameraCaptureSession) {
Toast.makeText(MainActivity.this, "Configuration change", Toast.LENGTH_SHORT).show();
}
}, null);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}