|
|
@@ -94,7 +94,12 @@ object ArcSoftUtil {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- fun initCamera(context: Context, windowManager: WindowManager, preview: View, callBack: (Bitmap?) -> Unit) {
|
|
|
+ fun initCamera(
|
|
|
+ context: Context,
|
|
|
+ windowManager: WindowManager,
|
|
|
+ preview: View,
|
|
|
+ callBack: (Bitmap?, Int, Boolean) -> Unit
|
|
|
+ ) {
|
|
|
val metrics = DisplayMetrics()
|
|
|
windowManager.defaultDisplay.getMetrics(metrics)
|
|
|
|
|
|
@@ -119,7 +124,7 @@ object ArcSoftUtil {
|
|
|
FaceEngine.CP_PAF_NV21,
|
|
|
faceInfoList
|
|
|
)
|
|
|
- if (code == ErrorInfo.MOK && faceInfoList.size > 0) {
|
|
|
+ if (code == ErrorInfo.MOK && faceInfoList.isNotEmpty()) {
|
|
|
code = faceEngine!!.process(
|
|
|
nv21,
|
|
|
previewSize!!.width,
|
|
|
@@ -146,16 +151,22 @@ object ArcSoftUtil {
|
|
|
|
|
|
// 有其中一个的错误码不为ErrorInfo.MOK,return
|
|
|
if ((ageCode or genderCode or face3DAngleCode or livenessCode) != ErrorInfo.MOK) {
|
|
|
+ LogUtil.d("人脸检测结果:年龄、性别、角度、获取验证失败")
|
|
|
return
|
|
|
}
|
|
|
|
|
|
// 自己加的,必须有活体检测
|
|
|
if (faceLivenessInfoList.none { it.liveness == LivenessInfo.ALIVE }) {
|
|
|
+ callBack(null, faceInfoList.size, false)
|
|
|
return
|
|
|
}
|
|
|
- val bitmap = NV21ToBitmap(context).nv21ToBitmap(nv21, previewSize!!.width, previewSize!!.height)
|
|
|
- LogUtil.i("识别结果 : ${bitmap == null} - $faceInfoList")
|
|
|
- callBack(bitmap)
|
|
|
+ val bitmap = NV21ToBitmap(context).nv21ToBitmap(
|
|
|
+ nv21,
|
|
|
+ previewSize!!.width,
|
|
|
+ previewSize!!.height
|
|
|
+ )
|
|
|
+ LogUtil.d("人脸检测结果-识别结果 : ${bitmap == null} - $faceInfoList")
|
|
|
+ callBack(bitmap, faceInfoList.size, true)
|
|
|
}
|
|
|
|
|
|
override fun onCameraClosed() {
|
|
|
@@ -182,7 +193,12 @@ object ArcSoftUtil {
|
|
|
cameraHelper!!.start()
|
|
|
}
|
|
|
|
|
|
- fun start(context: Context, windowManager: WindowManager, preview: View, callBack: (Bitmap?) -> Unit) {
|
|
|
+ fun start(
|
|
|
+ context: Context,
|
|
|
+ windowManager: WindowManager,
|
|
|
+ preview: View,
|
|
|
+ callBack: (Bitmap?, Int, Boolean) -> Unit
|
|
|
+ ) {
|
|
|
initEngine(context)
|
|
|
initCamera(context, windowManager, preview, callBack)
|
|
|
}
|