import android.hardware.Camera; //导入方法依赖的package包/类
@Override
public void onFaceDetection(Camera.Face[] faces, Camera camera) {
if (faces.length > 0) {
Matrix matrix = new Matrix();
boolean frontCamera = (getCameraType() == RCTCameraModule.RCT_CAMERA_TYPE_FRONT);
int height = getHeight();
int width = getWidth();
matrix.setScale(frontCamera ? -1 : 1, 1);
matrix.postRotate(RCTCamera.getInstance().getOrientation());
matrix.postScale(width / 2000f, height / 2000f);
matrix.postTranslate(width / 2f, height / 2f);
double pixelDensity = getPixelDensity();
for (Camera.Face face : faces) {
RectF faceRect = new RectF(face.rect);
matrix.mapRect(faceRect);
WritableMap faceEvent;
faceEvent = Arguments.createMap();
faceEvent.putInt("faceID", face.id);
faceEvent.putBoolean("isFrontCamera", frontCamera);
faceEvent.putDouble("x", faceRect.left / pixelDensity);
faceEvent.putDouble("y", faceRect.top / pixelDensity);
faceEvent.putDouble("h", faceRect.height() / pixelDensity);
faceEvent.putDouble("w", faceRect.width() / pixelDensity);
((ReactContext) getContext()).getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit("CameraFaceDetected", faceEvent);
}
}
}