java - 未找到 Android Jetpack CameraX 方法 createSurfaceProvider()
问题描述
在 android 文档中的教程中使用 CameraX 时遇到了问题。我找不到方法createSurfaceProvider()
我正在使用这些库:camerax_version = "1.0.0-beta10"
代码:
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
previewView = view.findViewById(R.id.previewView);
ListenableFuture<ProcessCameraProvider> cameraProviderFuture =
ProcessCameraProvider.getInstance(requireContext());
cameraProviderFuture.addListener(() -> {
try {
ProcessCameraProvider cameraProvider = cameraProviderFuture.get();
bindPreview(cameraProvider);
} catch (InterruptedException | ExecutionException e) {
}
}, ContextCompat.getMainExecutor(requireContext()));
}
private void bindPreview(ProcessCameraProvider cameraProvider) {
Preview preview = new Preview.Builder().build();
imageCapture = new ImageCapture.Builder()
.setCaptureMode(ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY)
.build();
CameraSelector cameraSelector = new CameraSelector.Builder()
.requireLensFacing(CameraSelector.LENS_FACING_BACK)
.build();
Camera camera = cameraProvider.bindToLifecycle(
((LifecycleOwner) this),
cameraSelector,
preview,
imageCapture);
preview.setSurfaceProvider(
previewView.createSurfaceProvider(camera.getCameraInfo()));
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
}
解决方案
只是按照最新的教程并面临同样的问题。但是,如果您只是调用预览的属性 surfaceProvider,一切都会正常工作。
val preview = Preview.Builder() .build() .also { it.setSurfaceProvider(viewFinder.surfaceProvider) }
推荐阅读
- sql - 不包括数据的数据库 SQL
- drake - Inspecting port data in real time
- javascript - Proper formatting for pattern string in typescript
- django - django-admin, Djongo/MongoDB 中的 ArrayReferenceField(ManyToManyField)
- node.js - 运行数据库查询的所有请求的持续 H12 超时错误
- javascript - 将多个响应数据获取到数组类型的 javascript 变量中
- html - 在 Vue js 中更改按钮文本和颜色
- php - SKU 的 Woocommerce API REST 更新产品
- git - 如何将本地修改的文件恢复/重置/撤消到先前暂存但未提交的状态?
- html - 在 HTML 中使用类不适用于 css,但常规数据类型可以