【发布时间】:2022-11-10 16:05:11
【问题描述】:
我在 MainActivity 中使用此代码来获取现实生活中的相机预览
应用启动时,previewView 为黑色
基于 android 文档中的this code
mCameraProviderListenableFuture = ProcessCameraProvider.getInstance(this.requireContext());
mCameraProviderListenableFuture.addListener(() -> {
try {
ProcessCameraProvider cameraProvider = mCameraProviderListenableFuture.get();
Preview preview = new Preview.Builder().build();
mPreviewView.setScaleType(PreviewView
.ScaleType
.FIT_CENTER);
preview.setSurfaceProvider(mPreviewView.getSurfaceProvider());
CameraSelector cameraSelector = new CameraSelector.Builder()
.requireLensFacing(CameraSelector.LENS_FACING_BACK)
.build();
Recorder recorder = new Recorder.Builder()
.setQualitySelector(
QualitySelector.from(Quality.HIGHEST)
).build();
mVideoCapture = VideoCapture.withOutput(recorder);
cameraProvider.unbindAll();
Log.d(TAG, "startCamera: binding to lifecycle...");
cameraProvider.bindToLifecycle(
(LifecycleOwner) this.requireContext(),
cameraSelector,
preview,
mVideoCapture);
} catch (ExecutionException | InterruptedException e) {
e.printStackTrace();
}
}, ContextCompat.getMainExecutor(this.requireContext()));
但我在控制台中给出了这个错误
E/Camera2CameraImpl: Unable to configure camera 0, timeout!
AndroidManifest 中的权限:
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
【问题讨论】: