camera2 removeTarget demo
时间: 2023-07-23 12:38:08 浏览: 43
以下是一个简单的 Camera2 API 的示例,用于从预览中移除一个图像目标:
```java
private void removeImageTarget(Surface targetSurface) {
try {
// 停止预览
mCameraDevice.stopPreview();
// 移除目标 Surface
List<Surface> surfaces = mCaptureSession.getOutputTargets();
surfaces.remove(targetSurface);
// 重新创建 CaptureRequest 并开始预览
CaptureRequest.Builder builder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
for (Surface surface : surfaces) {
builder.addTarget(surface);
}
mCaptureSession.setRepeatingRequest(builder.build(), null, null);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
```
在这个示例中,我们首先停止了当前的预览,然后从输出目标列表中移除了指定的 Surface。接下来,我们重新创建了一个 CaptureRequest,并将其设置为连续重复,以开始新的预览。请注意,这只是一个示例,实际上你可能需要更复杂的逻辑来处理不同的情况。