我正在尝试开发一个带有面部检测功能的简单相机应用程序,并且我正在使用来自这里的 android-vision 示例 https://github.com/googlesamples/android-vision/tree/master/visionSamples/FaceTracker
一切正常,我需要在其中添加放大/缩小功能。我搜索了 SO,但没有发现任何与视力有关的东西。每个答案都与 Camera2 有关。
我正在尝试开发一个带有面部检测功能的简单相机应用程序,并且我正在使用来自这里的 android-vision 示例 https://github.com/googlesamples/android-vision/tree/master/visionSamples/FaceTracker
一切正常,我需要在其中添加放大/缩小功能。我搜索了 SO,但没有发现任何与视力有关的东西。每个答案都与 Camera2 有关。
你可以试试 startSmoothZoom:
https://developer.android.com/reference/android/hardware/Camera.html#startSmoothZoom(int)
您需要修改 CameraSource 的开源版本才能进行此更改,因为您需要访问其底层 android.hardware.Camera 实例:
试试这段代码,它可以工作(是的,它是反射)
try {
cameraSource.apply {
start(holder)
javaClass.getDeclaredField("zzg").apply {
isAccessible = true
(get(cameraSource) as Camera).apply {
startSmoothZoom(min(5, parameters.maxZoom))
}
}
}
} catch (e: Throwable) {
Timber.e(e)
}
请注意,这zzg
是一个经过混淆的Camera
实例变量,它的名称可能因库版本而异