Android CameraX 前后摄像头 同时使用
时间: 2023-09-16 22:13:35 浏览: 132
使用 CameraX 同时预览前后摄像头可以通过创建一个 `Preview` 对象和两个 `Camera` 对象来实现。首先,创建一个 `Preview` 对象并将其附加到您的视图层次结构中:
```java
Preview preview = new Preview.Builder().build();
CameraX.bindToLifecycle(this, preview);
preview.setSurfaceProvider(previewView.getSurfaceProvider());
```
然后,创建两个 `Camera` 对象 - 一个用于前置摄像头,另一个用于后置摄像头,并将它们附加到 `Preview` 对象中:
```java
CameraSelector frontCamera = new CameraSelector.Builder().requireLensFacing(CameraSelector.LENS_FACING_FRONT).build();
CameraSelector backCamera = new CameraSelector.Builder().requireLensFacing(CameraSelector.LENS_FACING_BACK).build();
Camera cameraFront = CameraX.getCameraWithCameraSelector(frontCamera);
Camera cameraBack = CameraX.getCameraWithCameraSelector(backCamera);
cameraFront.attachPreview(preview);
cameraBack.attachPreview(preview);
```
现在您已经成功创建了两个 `Camera` 对象并将它们附加到 `Preview` 对象中。您可以使用 `CameraSelector` 对象来选择要使用的摄像头,并在需要时切换它们。例如,您可以使用以下代码切换到前置摄像头:
```java
CameraX.unbindAll();
Camera cameraFront = CameraX.getCameraWithCameraSelector(frontCamera);
cameraFront.attachPreview(preview);
```
注意,在切换摄像头时,您需要调用 `CameraX.unbindAll()` 方法以释放旧摄像头的资源。