所以基本上我有这个代码,
if(mCamera.getParameters().getMaxNumDetectedFaces()==0) { System.out.println("Face detection not avaliable"); } else { System.out.println("Max faces: " + Integer.toString(mCamera.getParameters().getMaxNumDetectedFaces())); } mCamera.setFaceDetectionListener(new FaceDetectionListener() { @Override public void onFaceDetection(Face[] faces,Camera camera) { // TODO Auto-generated method stub System.out.println("Face detection callback called." + Integer.toString(faces.length)); } });
调用mCamera.startFaceDetection();调用回调后,一切正常.但是,如果我更换相机,相同的代码会导致回调永远不会被调用. getMaxNumDetectedFaces,为两个摄像机返回35,所以我认为它支持在前置摄像头.我可以来回更改相机,每次调用此代码,它将适用于后置摄像头,但不适用于前置摄像头.
还有什么我可能做错了吗?
解决方法
相机的质量不可能(前一个,对吗?)是不是足够准确的面部检测工作?相机的图像可能太嘈杂,无法使脸部探测器工作.还有很多其他变量可能会阻碍这一点.
还要搜索前置摄像头,看起来像前置摄像头的点可能是镜像的.这在以下描述:http://developer.android.com/reference/android/hardware/Camera.Face.html
我希望这有帮助.