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
JavaScript
;
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