CameraCaptureSession abortCapture 性能非常差

CameraCaptureSession abortCapture very bad performance

要使用新状态(焦点、曝光时间)更新相机捕获会话,我似乎必须在当前会话中调用 abortCaptures。不过,调用它大约需要 0.3 秒。视口在此期间也会冻结。虽然其他应用程序似乎可以毫不费力地改变焦点,但这些应用程序是如何做到的?

如果我不在我的会话中调用 abortCaptures,它最终会更新到一个新的焦距而不会卡顿,但仅在大约 10 秒后..

源文件: https://github.com/RuurdBijlsma/Camera/blob/master/app/src/main/java/com/ruurdbijlsma/camera/Camera.java#L166

您不需要调用 abortCaptures 来更改相机捕获参数 - 通常只有在您想要快速更改为新的捕获会话时才需要它,并且只有当您有新的目标表面时才需要它。比如从照片模式切换到视频模式。

只需在捕获请求生成器中更改焦点或曝光设置、生成请求并将其提交到相机设备(可能通过 setRepeatingRequest())。