UNPKG

react-native-vision-camera-face-detector

Version:

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

83 lines (81 loc) 2.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; exports.useFaceDetectorOutput = useFaceDetectorOutput; var _react = require("react"); var _factory = require("../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] * }) * ``` */ function useFaceDetectorOutput({ onFacesDetected, onError, outputResolution = 'preview', ...options }) { const stableOnFacesDetected = (0, _react.useRef)(onFacesDetected); stableOnFacesDetected.current = onFacesDetected; const stableOnError = (0, _react.useRef)(onError); stableOnError.current = onError; return (0, _react.useMemo)(() => (0, _factory.createFaceDetectorOutput)({ onFacesDetected(faces) { stableOnFacesDetected.current(faces); }, onError(error) { stableOnError.current(error); }, outputResolution: outputResolution, ...options }), [options]); } var _default = exports.default = useFaceDetectorOutput; //# sourceMappingURL=useFaceDetectorOutput.js.map