英文:
Observing camera isFocusing || !isFocusing for androidx.camera.core.Camera
问题
以下是翻译好的内容:
有没有文档可以帮助我指导方向?我最近才实现了AndroidX,因为我之前在使用旧的相机框架。
我只找到了一个线索,但是走到了死胡同。我想在相机对焦和/或对焦完成时收到通知。
编辑:
以下是我设置和配置相机的代码块:
Size screen = new Size(txView.getWidth(), txView.getHeight()); // 屏幕的尺寸
Preview preview = new Preview.Builder()
// 我们请求纵横比,但不指定分辨率
.setTargetResolution(screen)
// 设置初始目标旋转
.setTargetRotation(getWindowManager().getDefaultDisplay().getRotation())
.build();
ImageCapture imageCapture = new ImageCapture.Builder()
.setCaptureMode(ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY)
// 我们请求纵横比,但不指定分辨率,以匹配预览配置,但会让 CameraX 为最适合我们用例的特定分辨率进行优化
.setTargetResolution(screen)
// 设置初始目标旋转,如果旋转在此用例的生命周期中发生更改,我们将需要再次调用此方法
.setTargetRotation(getWindowManager().getDefaultDisplay().getRotation())
.build();
ImageAnalysis imageAnalyzer = new ImageAnalysis.Builder()
.setTargetResolution(screen)
.setTargetRotation(getWindowManager().getDefaultDisplay().getRotation())
.build();
CameraSelector cameraSelector =
new CameraSelector.Builder()
.requireLensFacing(CameraSelector.LENS_FACING_BACK)
.build();
int count = 0;
cameraProviderFuture.addListener(new Runnable() {
@Override
public void run() {
try {
ProcessCameraProvider cameraProvider = cameraProviderFuture.get();
cameraProvider.unbindAll();
androidx.camera.core.Camera camera = cameraProvider.bindToLifecycle(
MainActivity.this,
cameraSelector,
preview,
imageAnalyzer,
imageCapture
);
preview.setSurfaceProvider(txView.createSurfaceProvider(camera.getCameraInfo()));
onCreateTime = System.currentTimeMillis()/1000;
} catch (Exception e) {
}
}
}, ContextCompat.getMainExecutor(this));
谢谢大家!
英文:
Is there any documentation you guys can help me drive me in the direction? I've only VERY recently implemented AndroidX as I was using the old Camera framework.
I've only found one lead and it was a dead end. I guess I would like to be notified when the camera is focusing and/or when it is focused.
Edit:
This is my code block where I setup and configure my camera:
Size screen = new Size(txView.getWidth(), txView.getHeight()); //size of the screen
Preview preview = new Preview.Builder()
// We request aspect ratio but no resolution
.setTargetResolution(screen)
// Set initial target rotation
.setTargetRotation(getWindowManager().getDefaultDisplay().getRotation())
.build();
ImageCapture imageCapture = new ImageCapture.Builder()
.setCaptureMode(ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY)
// We request aspect ratio but no resolution to match preview config, but letting
// CameraX optimize for whatever specific resolution best fits our use cases
.setTargetResolution(screen)
// Set initial target rotation, we will have to call this again if rotation changes
// during the lifecycle of this use case
.setTargetRotation(getWindowManager().getDefaultDisplay().getRotation())
.build();
ImageAnalysis imageAnalyzer = new ImageAnalysis.Builder()
.setTargetResolution(screen)
.setTargetRotation(getWindowManager().getDefaultDisplay().getRotation())
.build();
CameraSelector cameraSelector =
new CameraSelector.Builder()
.requireLensFacing(CameraSelector.LENS_FACING_BACK)
.build();
int count = 0;
cameraProviderFuture.addListener(new Runnable() {
@Override
public void run() {
try {
ProcessCameraProvider cameraProvider = cameraProviderFuture.get();
cameraProvider.unbindAll();
androidx.camera.core.Camera camera = cameraProvider.bindToLifecycle(
MainActivity.this,
cameraSelector,
preview,
imageAnalyzer,
imageCapture
);
preview.setSurfaceProvider(txView.createSurfaceProvider(camera.getCameraInfo()));
onCreateTime = System.currentTimeMillis()/1000;
} catch (Exception e) {
}
}
}, ContextCompat.getMainExecutor(this));
Thank you all!
专注分享java语言的经验与见解,让所有开发者获益!
评论