首页 > 解决方案 > 如何使用 Android cameraX 访问外部 USB 摄像头?

问题描述

我正在关注这个codelab来创建一个 cameraX 应用程序。

它在我的手机中运行良好。但我正在开发的应用程序是用于安卓媒体播放器的。它没有任何内置摄像头,只连接了一个外部 USB 摄像头。

这是我启动相机的代码。

private void startCamera() {
    ListenableFuture<ProcessCameraProvider> cameraProviderFuture = ProcessCameraProvider.getInstance(this);
    Preview preview = new Preview.Builder().build();
    preview.setSurfaceProvider(viewFinder.getSurfaceProvider());
    imageCapture = new ImageCapture.Builder().build();
    cameraProviderFuture.addListener(() -> {
                try {
                    ProcessCameraProvider cameraProvider = cameraProviderFuture.get();
                    cameraProvider.unbindAll();
                    cameraProvider.bindToLifecycle(this, CameraSelector.DEFAULT_BACK_CAMERA,preview,imageCapture);
                } catch (ExecutionException e) {
                    e.printStackTrace();
                    Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                    Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
                }
                catch (IllegalArgumentException e){
                    Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
                }
            }, ContextCompat.getMainExecutor(this)
    );


}

它抛出IllegalArgumentException说 no camera connected 。

cameraProvider.bindToLifecycle(this, CameraSelector.DEFAULT_BACK_CAMERA,preview,imageCapture);

唯一CameraSelector.DEFAULT_FRONT_CAMERACameraSelector.DEFAULT_BACK_CAMERA 可用。

如何访问外部摄像头?

从 Play 商店打开相机应用程序工作正常。

标签: androidandroid-cameraandroid-camerax

解决方案


推荐阅读