UNPKG

react-native-vision-camera-face-detector

Version:

Frame Processor Plugin to detect faces using MLKit Vision Face Detector for React Native Vision Camera!

79 lines (76 loc) 1.93 kB
"use strict"; import { useMemo, useRef } from 'react'; import { createFaceDetectorOutput } from '../factory'; // types /** * Use a Barcode Scanner {@linkcode CameraOutput}. * * The Face Detector {@linkcode CameraOutput} can be * attached to a {@linkcode CameraSession} or {@linkcode Camera} * component. * * @example * Attach to a `<Camera />` component: * ```tsx * const device = ... * const faceDetectorOutput = useFaceDetectorOutput({ * performanceMode: 'fast', * onFacesDetected(faces) { * console.log(`Detected ${faces.length} faces!`) * }, * onError(error) { * console.error(`Failed to detect faces!`, error) * } * }) * * return ( * <Camera * isActive={true} * device={device} * outputs={[faceDetectorOutput]} * /> * ) * ``` * @example * Attach to a `CameraSession`: * ```ts * const device = ... * const faceDetectorOutput = useFaceDetectorOutput({ * performanceMode: 'fast', * onFacesDetected(faces, frame) { * console.log(`Detected ${faces.length} faces!`) * }, * onError(error) { * console.error(`Failed to detect faces!`, error) * } * }) * const camera = useCamera({ * isActive: true, * device: device, * outputs: [faceDetectorOutput] * }) * ``` */ export function useFaceDetectorOutput({ onFacesDetected, onError, outputResolution = 'preview', ...options }) { const stableOnFacesDetected = useRef(onFacesDetected); stableOnFacesDetected.current = onFacesDetected; const stableOnError = useRef(onError); stableOnError.current = onError; return useMemo(() => createFaceDetectorOutput({ onFacesDetected(faces) { stableOnFacesDetected.current(faces); }, onError(error) { stableOnError.current(error); }, outputResolution: outputResolution, ...options }), [options]); } export default useFaceDetectorOutput; //# sourceMappingURL=useFaceDetectorOutput.js.map