CameraCaptureSession 没有getOutputSurfaces() getOutputs()方法
时间: 2024-03-20 22:43:15 浏览: 17
非常抱歉,我的回答仍然有误。在Camera2 API中,CameraCaptureSession确实没有getOutputSurfaces()和getOutputs()方法。
在创建CameraCaptureSession时,您可以通过createCaptureSession(List<Surface> outputs, CameraCaptureSession.StateCallback callback, Handler handler)方法设置输出目标。在这个方法中,您可以将需要的Surface对象作为参数传入。
在CameraCaptureSession.StateCallback的onConfigured(CameraCaptureSession session)回调方法中,您可以通过session的getCaptureRequests()方法获得当前正在进行的CaptureRequest对象的列表。通过遍历这个列表,您可以获得每个CaptureRequest对象中所使用的输出Surface。例如:
```
List<CaptureRequest> captureRequests = session.getCaptureRequests();
for (CaptureRequest request : captureRequests) {
for (Surface surface : request.getTargets()) {
// 处理每个输出Surface
}
}
```
其中,request.getTargets()方法返回一个Surface对象列表,表示当前CaptureRequest所使用的输出Surface。通过遍历这个列表,您可以获取每个输出Surface的相关信息。
需要注意的是,CameraCaptureSession的输出目标可以包括预览Surface、照片Surface以及其他自定义Surface等,具体取决于您的业务需求。