gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 23:54:56 55 4
gpt4 key购买 nike

已弃用的 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);

我也查到了this question on StackOverflow ,我们必须做类似的事情:

SessionConfiguration sessionConfiguration = new SessionConfiguration(SessionConfiguration.SESSION_REGULAR, Collections.singletonList(outputConfiguration), new HandlerExecutor(mCameraHandler.getLooper()), mCameraSessionListener);
cameraDevice.createCaptureSession(sessionConfiguration);

首先,这是正确的使用方式吗?如果是,那么什么是outputConfiguration,如何正确声明?在 Youtube 教程中,从未创建任何 outputConfiguration!

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

最佳答案

您没有理由不继续使用已弃用的 createCaptureSession 版本 - 它的工作方式与以前一样好。您只需忽略 Android Studio 弃用警告即可。

基本上,随着时间的推移,我们不得不添加更多的 createCaptureSession 重载以及越来越多的参数和可选参数变体,而且它变得过多了。

所以我们创建了SessionConfiguration作为一个随着时间的推移更加灵活的配置对象(更容易向其添加新参数),再设置一个接受它的 createCaptureSession,并弃用所有先前的版本以将人们引导到我们今天要添加的版本,如果我们正在设计再次 API。

如果你想使用最新的选项,那么你可以看看OutputConfiguration (它只是包装了输出表面的列表以及一些其他可选设置) - 你可以只用你在 Arrays.asList() 调用中放入的 surface 来构建一个示例代码。

但是您可以继续使用现有的东西 - 我们实际上不会破坏旧方法。

关于android - 如何在 Android 的 camera2 中正确使用新的 createCaptureSession()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67077568/

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com