我正在研究新的CameraX API,与从我们当前的Camera2系统切换过来的可行性有关。
在我们的Camera2系统中,我们使用OpenGL surface从PreviewCaptureSession中捕获帧,并且我们在大多数设备上达到了一致的30fps图像处理速度,有些设备在启用自动曝光设置的情况下能够达到60fps。
CameraX没有给出任何接近这个速度的东西,我不确定是不是我错过了设置。
我已经为CameraX和ImageAnalysis设置了测试示例,但我得到的帧率对通过的图像数量是锁定的。
例如,我可以将分辨率低至320x240至1920x960,并且两者都将以16fps(似乎有上限)出现。
当我添加一个预览用例并设置enableTorch(真)时,ImageAnalysis用例会突然开始变得更接近20fps,偶尔会达到30ish的峰值。
很明显,预览会改变相机的自动曝光状态?
这是我当前设置的一个片段...private fun startCameraAnalysis() {
val metrics = DisplayMetrics().also { viewFinder.display.getRealMetrics(it) }
var resolution = Size(metrics.widthPixels, metrics.heightPixels)
resolution = Size(640, 480) //set to fixed size for testing
val aspectRatio = Rational(resolution.width, resolution.height)
val rotation = viewFinde