android - 如何使用 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_CAMERA
且CameraSelector.DEFAULT_BACK_CAMERA
可用。
如何访问外部摄像头?
从 Play 商店打开相机应用程序工作正常。
解决方案
推荐阅读
- linux - Linux 上的 Azure CosmosDB
- django - 使用 **kwargs / 字符串填充 django-taggit 字段
- ckeditor - CKEditor 5 的设定值
- javascript - 是否可以使用 web3.js 从 Solidity 获取 uint256 值
- javascript - 在 JavaScript 中搜索带点的字符串
- arrays - Swift:代码由于某种原因崩溃
- bazel - 如何将自定义标志传递给“bazel test”命令
- sql-server - SQL 计划方差科学记数法
- c# - .NET Core 2.0:仅允许使用“http”和“https”方案。参数名称:requestUri
- c# - 将 B2C 回复 URL 从“signin-oidc”更改为其他内容不起作用