Java – cameradevice failed to create session [Camera2]
•
Java
I'm trying to stream camera data to surfaceview. Com using the Camera2 API I am following this guide: Camera2 guide
I can't pass step 5
setContentView(R.layout.activity_main); surfaceView = (SurfaceView)findViewById(R.id.surface); manager = (CameraManager)getSystemService(Context.CAMERA_SERVICE);
for (String id : manager.getCameraIdList()) { Cameracharacteristics characteristics = manager.getCameracharacteristics(id); Integer direction = characteristics.get(Cameracharacteristics.LENS_FACING); if (direction != null && direction == Cameracharacteristics.LENS_FACING_BACK) { if (checkCallingOrSelfPermission("android.permission.CAMERA") == PackageManager.PERMISSION_GRANTED) manager.openCamera(id,new StateCallback(),null); break; } }
List<Surface> surfaces = new LinkedList<>(); surfaces.add(surfaceView.getHolder().getSurface()); CaptureRequest.Builder builder = camera.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW); builder.addTarget(surfaces.get(0)); camera.createCaptureSession(surfaces,new CameraCaptureSession.StateCallback() { @Override public void onConfigured(CameraCaptureSession session) { Log.i(TAG,"Configured"); } @Override public void onConfigureFailed(CameraCaptureSession session) { Log.e(TAG,"Configured Failed"); // Ends up in this function :( } },null);
The program is finally in the onconfigurefailed() function I don't know what might be wrong. I don't know how to check what it is
My guess is that I missed something in capturerequest, but I don't know what it is
I'm running Samsung Galaxy S4
Solution
Add to onconfigured:
if (null == cameraDevice) { Log.e(TAG,"updatePreview error,return"); return; } captureRequestBuilder.set(CaptureRequest.CONTROL_MODE,Camera@R_403_1926@data.CONTROL_MODE_AUTO); try { cameraCaptureSessions.setRepeatingRequest(captureRequestBuilder.build(),null,mBackgroundHandler); } catch (CameraAccessException e) { e.printStackTrace(); }
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码