小编Coo*_*der的帖子

如何在Android中正确使用camera2中的新createCaptureSession()?

已弃用的createCaptureSession()方法在旧代码中按以下方式使用:

cameraDevice.createCaptureSession(Arrays.asList(surface), new CameraCaptureSession.StateCallback() {
     @Override
     public void onConfigured(@NonNull CameraCaptureSession session) {
         if (mycameraDevice == null){
             return;
         }
         cameraCaptureSession = session;
         if (cameraDevice == null){
             return;
         }
         captureRequestBuilder.set(CaptureRequest.CONTROL_MODE, CameraMetadata.CONTROL_MODE_AUTO);
         try {
             cameraCaptureSession.setRepeatingRequest(captureRequestBuilder.build(), null, mBackgroundHandler);
         } catch (CameraAccessException e) {
             e.printStackTrace();
         }
     }
     @Override
     public void onConfigureFailed(@NonNull CameraCaptureSession session) {
         Toast.makeText(MainActivity.this, "Configuration Failed! :(", Toast.LENGTH_SHORT).show();
     }
 }, null); 
Run Code Online (Sandbox Code Playgroud)

我还在 StackOverflow 上发现了这个问题,其中我们必须执行以下操作:

SessionConfiguration sessionConfiguration = new SessionConfiguration(SessionConfiguration.SESSION_REGULAR, Collections.singletonList(outputConfiguration), new HandlerExecutor(mCameraHandler.getLooper()), mCameraSessionListener);
cameraDevice.createCaptureSession(sessionConfiguration);
Run Code Online (Sandbox Code Playgroud)

首先,这是正确的使用方法吗?如果是,那么outputConfiguration是什么以及如何正确声明它?在 Youtube 教程中,从未创建任何输出配置!

那么我需要进行哪些更改才能再次使用该代码?

camera android android-camera2

4
推荐指数
1
解决办法
4634
查看次数

标签 统计

android ×1

android-camera2 ×1

camera ×1