public override void OnEnter(params object[] keys)
        {
            _face = null;

            MEventHub.Instance.AddListener(FaceRecEventId.FaceDetectResult, this);

            MEventHub.Instance.AddListener(FaceRecEventId.FaceSearchResult, this);

            if (_viewModel != null)
            {
                _viewModel.ScannerActive = true;

                _webCam?.Pause();

                _webCam?.Snapshot((Texture2D tex) =>
                {
                    _viewModel.CamTexture = tex;
                });
            }

            Task.CreateTask(SnapshotScreen((tex) =>
            {
                Task.CreateTask(DelayHandleFace(tex));

                MEventHub.Instance.Dispatch(FaceRecEventId.FaceDetectRequest, new FaceRecRequestArgs()
                {
                    tex = tex
                });
            }));
        }
 /// <summary>
 /// 处理检测结果
 /// </summary>
 private void HandleDetectResult(FaceDetectResultArgs args)
 {
     if (args.res != null && args.res.result != null && args.res.result.face_num > 0)
     {
         _face = args.res.result.face_list[0];
     }
 }
        public override void OnExit()
        {
            _face = null;

            MEventHub.Instance.RemoveListener(FaceRecEventId.FaceDetectResult, this);

            if (_viewModel != null)
            {
                _viewModel.ScannerActive = false;
            }
        }
Exemple #4
0
        public override void OnExit()
        {
            if (_fadeoutTween != null && _fadeoutTween.IsPlaying())
            {
                _fadeoutTween.Kill();
            }

            if (_viewModel != null)
            {
                _viewModel.RecActive = false;
            }

            _face = null;
        }
Exemple #5
0
        public override void OnEnter(params object[] keys)
        {
            _permit = false;

            if (keys != null && keys.Length > 1)
            {
                _face = keys[0] as Face;

                if (_face != null)
                {
                    Vector2[] landmark = _face.landmark;

                    if (landmark != null && landmark.Length >= 4)
                    {
                        if (_viewModel != null)
                        {
                            _viewModel.RecActive = true;

                            _viewModel.RecPosition = new Vector2[]
                            {
                                ModifyPosY(landmark[1]),

                                ModifyPosY(landmark[2]),

                                ModifyPosY(landmark[3])
                            };
                        }
                    }
                }

                Texture2D faceTex = keys[1] as Texture2D;

                if (faceTex != null)
                {
                    MEventHub.Instance.Dispatch(FaceRecEventId.FaceSearchRequest, new FaceRecRequestArgs()
                    {
                        tex = faceTex
                    });
                }
            }

            Task.CreateTask(DelayTurnView());
        }