React Native - Как извлечь данные из FaceDetector Экспо SDK? - PullRequest
0 голосов
/ 20 апреля 2020

Я новичок в React Native и все еще изучаю React и JavaScript. Я тренируюсь на закусочной Экспо с FaceDetector Экспо (SDK 37) и сумел сгенерировать данные о лицах. Однако я не мог (или не знаю, как) извлечь эти данные. Моя цель на данный момент - визуализировать данные rollAngle в компоненте Text.

Вот код, который я использовал в Expo Snack и тестировал на моем Android мобильном телефоне:

import React, { useState, useEffect } from 'react';
import { Text, View } from 'react-native';
import { Camera } from 'expo-camera';
import * as FaceDetector from 'expo-face-detector'

export default function App() {
  const [hasPermission, setHasPermission] = useState(null);
  const [faces, setFaces] = useState([])

  const faceDetected = ({faces}) => {
    setFaces({faces})
    console.log({faces})
  }

  useEffect(() => {
    (async () => {
      const { status } = await Camera.requestPermissionsAsync();
      setHasPermission(status === 'granted');
    })();
  }, []);

  if (hasPermission !== true) {
    return <Text>No access to camera</Text>
  }

  return (
    //<View style={{ flex: 1 }}>
      <Camera
        style={{ flex: 1 }}
        type='front'
        onFacesDetected = {faceDetected}
        FaceDetectorSettings = {{
          mode: FaceDetector.Constants.Mode.fast,
          detectLandmarks: FaceDetector.Constants.Landmarks.all,
          runClassifications: FaceDetector.Constants.Classifications.none,
          minDetectionInterval: 5000,
          tracking: false
        }}
      >
        <View
          style={{
            flex: 1,
            backgroundColor: 'transparent',
            flexDirection: 'row',
          }}>
          <Text style= {{top:200}}> is {faces[0].rollAngle} </Text>
        </View>
      </Camera>
    //</View>
  );
}

. Консоль Snack, я вижу результаты, как это: Результаты в консоли Snack

Я попытался заменить функцию faceDetected следующим кодом:

  const faceDetected = (faces) => {
    setFaces(faces)
    console.log(faces)
  }

Затем, Консоль показывает немного отличающиеся результаты: Результаты в консоли Snack

Я пробовал оба способа визуализации rollAngle, но появилось сообщение об ошибке и было указано лицо [0] .rollAngle не определено и не является объект.

Пожалуйста, помогите, и любые предложения приветствуются. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...