android.jpg
前言
如果有小伙伴对于Camera相关的知识还不太了解的话,建议先去看这篇文章《Android: Camera相机开发详解(上) —— 知识储备》
本篇文章是在上篇文章的基础之上,在预览的时候加入人脸检测功能,并自定义一个view显示在预览画面上
实现思路
在相机开始预览后,调用startFaceDetection()方法开启人脸检测
设置人脸检测回调setFaceDetectionListener(FaceDetectionListener listener)
自定义一个FaceView,绘制人脸矩形区域
在人脸检测回调中,将检测到的人脸信息传递给自定义的FaceView,FaceView根据人脸信息中矩形位置绘制矩形,然后重新绘制FaceView
具体实现步骤
一、 开始人脸检测,添加回调方法
private fun startFaceDetect() {
mCamera?.let {
it.startFaceDetection() //开始人脸检测
it.setFaceDetectionListener { faces, _ ->
mCallBack?.onFaceDetect(transForm(faces))
log("检测到 ${faces.size} 张人脸")
}
}
}
在人脸检测的回调中第一个参数就是返回的人脸信息
注