/// <summary>
        /// Распознать печатный текст с помощью голосового управления
        /// </summary>
        /// <param name="cameraCommand"></param>
        /// <returns></returns>
        public async Task VoiceCommand(string cameraCommand)
        {
            switch (cameraCommand)
            {
            case "камера":
            {
                var photo = await CameraActions.TakePhoto();

                if (photo == null)
                {
                    return;
                }
                else
                {
                    await RecognizeAndVoicePrintedText(photo);
                }
                break;
            }

            case "галерея":
            {
                MediaFile photo = await CameraActions.GetPhoto();

                if (photo == null)
                {
                    return;
                }
                else
                {
                    await RecognizeAndVoicePrintedText(photo);
                }
                break;
            }
            }
        }
示例#2
0
        /// <summary>
        /// Сделать фото, распознать рукописный текст и озвучить результат
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void TakePhotoButton_Clicked(object sender, EventArgs e)
        {
            try
            {
                TakePhotoButton.IsEnabled = false;
                var photo = await CameraActions.TakePhoto();

                if (photo == null)
                {
                    return;
                }
                else
                {
                    await RecognizeAndVoiceHandwrittenText(photo);
                }
            }
            catch (CameraException ex)
            {
                await SpeechSyntezer.VoiceResult(ex.Message);
            }
            catch (Exception)
            {
                await Navigation.PushAsync(new SomethingWentWrongPage());
            }
            finally
            {
                TakePhotoButton.IsEnabled = true;
            }
        }
示例#3
0
        /// <summary>
        ///  Выбор фото из галереи, распознование банкноты и озвучка номинала
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void GetPhotoButton_Clicked(object sender, EventArgs e)
        {
            try
            {
                GetPhotoButton.IsEnabled = false;
                MediaFile photo = await CameraActions.GetPhoto();

                if (photo == null)
                {
                    return;
                }
                else
                {
                    await RecognizeAndVoiceBanknote(photo);
                }
            }
            catch (CameraException ex)
            {
                await SpeechSyntezer.VoiceResult(ex.Message);
            }
            catch (BanknotesDetectionException ex)
            {
                await SpeechSyntezer.VoiceResult(ex.Message);
            }
            catch (Exception)
            {
                await Navigation.PushAsync(new SomethingWentWrongPage());
            }
            finally
            {
                GetPhotoButton.IsEnabled = true;
            }
        }
        /// <summary>
        ///  Выбрать фото из галереи, распознать печтаный текст и озвучить результат
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void GetPhotoButton_Clicked(object sender, EventArgs e)
        {
            try
            {
                GetPhotoButton.IsEnabled = false;
                var photo = await CameraActions.GetPhoto();

                if (photo == null)
                {
                    return;
                }
                else
                {
                    await RecognizeAndVoicePrintedText(photo);
                }
            }
            catch (CameraException ex)
            {
                await SpeechSyntezer.VoiceResult(ex.Message);
            }
            catch (Exception ex)
            {
                await DisplayAlert("OK", ex.Message, "OK");

                await Navigation.PushAsync(new SomethingWentWrongPage());
            }
            finally
            {
                GetPhotoButton.IsEnabled = true;
            }
        }
示例#5
0
        /// <summary>
        /// Выполняет задачу заданную голосом на странице рукописного текста
        /// </summary>
        /// <param name="cameraCommand"></param>
        /// <returns></returns>
        public async Task DoCommandsActionOnHandwritten(string cameraCommand)
        {
            if (cameraCommand.Length < 3)
            {
                await SpeechSyntezer.VoiceResult("Такой команды не существует");
            }
            else
            {
                if (cameraCommand.Contains("камер"))
                {
                    var photo = await CameraActions.TakePhoto();

                    if (photo == null)
                    {
                        return;
                    }
                    else
                    {
                        await RecognizeAndVoiceHandwrittenText(photo);
                    }
                    return;
                }
                if (cameraCommand.Contains("гал"))
                {
                    MediaFile photo = await CameraActions.GetPhoto();

                    if (photo == null)
                    {
                        return;
                    }
                    else
                    {
                        await RecognizeAndVoiceHandwrittenText(photo);
                    }
                    return;
                }
                if (cameraCommand.Contains("наз"))
                {
                    await Navigation.PopToRootAsync();

                    return;
                }
                if (cameraCommand.Contains("повтор"))
                {
                    if (detectedText != null)
                    {
                        SpeechSyntezer.CancelSpeech();
                        await SpeechSyntezer.VoiceResultInEnglish(detectedText);
                    }
                    return;
                }
                else
                {
                    await SpeechSyntezer.VoiceResult("Такой команды не существует");

                    return;
                }
            }
        }
 public void CinematicMovement(GameObject fObject)
 {
     cameraAction       = CameraActions.FOLLOW;
     character          = fObject.transform;
     transform.position = new Vector3(fObject.transform.position.x, fObject.transform.position.y + cameraYOffset, fObject.transform.position.z + cameraZOffset);
     transform.LookAt(new Vector3(fObject.transform.position.x, fObject.transform.position.y + 1f, fObject.transform.position.z + 5f));
     relCameraPos = transform.position - fObject.transform.position;
 }
示例#7
0
    // Start is called before the first frame update

    void Start()
    {
        lifeMax  = lifePoints;
        animator = gameObject.GetComponent <Animator>();
        _MGR_Layer.Instance.SetOrderInLayer(gameObject.GetComponent <Renderer>());

        mainCameraActions = GameObject.FindGameObjectWithTag("MainCamera").GetComponent <CameraActions>();
    }
示例#8
0
    void ShowUI()
    {
        EventTriggerListener.Get(InfoBtn.gameObject).OnClick += (go, data) =>
        {
            bridgeInfo.GetComponent <Image>().DOFade(1, .3f);
        };


        EventTriggerListener.Get(BackBtn.gameObject).OnClick += (go, data) =>
        {
            mCurrentFocus   = pos;
            mSphericalPos.r = 80;
            panelScript.gameObject.SetActive(false);
            BackBtn.GetComponent <Image>().DOFade(0, .3f);
            CameraActions.FocusAt(camera, mCurrentFocus, dir, mSphericalPos.r, .5f, t =>
            {
                foreach (var mIcon in m_Icons)
                {
                    mIcon.GetComponent <Image>().DOFade(1, .5f);
                }
            });
        };


        m_Icons.Clear();
        var floatIconPrefab = Resources.Load <GameObject>("FloatIcon");

        foreach (var focusInfo in infos)
        {
            var go = Instantiate(floatIconPrefab);
            go.transform.SetParent(FloatingRoot);

            m_Icons.Add(go.GetComponent <RectTransform>());

            EventTriggerListener.Get(go).OnClick += (o, data) =>
            {
                panelScript.gameObject.SetActive(true);

                panelScript.SetText(focusInfo.name, focusInfo.pos.y + "m", focusInfo.desc);


                BackBtn.GetComponent <Image>().DOFade(1, .5f);

                foreach (var mIcon in m_Icons)
                {
                    mIcon.GetComponent <Image>().DOFade(0, .5f);
                }

                mSphericalPos.r = focusInfo.dist;
                mCurrentFocus   = focusInfo.pos;
                CameraActions.FocusAt(Camera.main, focusInfo.pos, focusInfo.dir, focusInfo.dist, .5f, t => { });
            };
        }

        UpdateUI();
    }
示例#9
0
    /*
     ###########################[MonoBehavior-Methods]###########################
     */

    // Start is called before the first frame update
    void Awake()
    {
        characterController = GetComponent <CharacterController>();
        cameraActions       = GetComponent <CameraActions>();
        inventory           = GetComponent <InventorySystem>();

        inputMaster = new InputMaster();

        inputMaster.Player.Interact.performed += ctx => PickUp();
        inputMaster.Player.DropAll.performed  += ctx => DropAll();
    }
示例#10
0
    IEnumerator Start()
    {
        bridgeInfo.GetComponent <Image>().color = new Color(1, 1, 1, 0);
        BackBtn.GetComponent <Image>().color    = new Color(1, 1, 1, 0);
        panelScript.gameObject.SetActive(false);
        mCurrentFocus = pos;
        yield return(CameraActions.FocusAtCoroutine(camera, pos, dir, 80, .5f, t =>
        {
            ShowUI();

            mSphericalPos = SphericalCoordinateSystem.FromCartesian(camera.transform.localPosition - mCurrentFocus);
        }));

        yield return(null);
    }
示例#11
0
        private async Task InitMediaDevice()
        {
            try
            {
                if (!FaceDetector.IsSupported)
                {
                    return;
                }

                var cameraDevice = await CameraActions.FindCameraDeviceByPanelAsync(Panel.Front);

                var settings = new MediaCaptureInitializationSettings {
                    VideoDeviceId = cameraDevice.Id
                };
                _mediaCapture = new MediaCapture();
                await _mediaCapture.InitializeAsync(settings);

                var definition = new FaceDetectionEffectDefinition
                {
                    SynchronousDetectionEnabled = false,
                    DetectionMode = FaceDetectionMode.HighPerformance
                };

                var faceDetectionEffect = (FaceDetectionEffect)await _mediaCapture.AddVideoEffectAsync(definition, MediaStreamType.VideoPreview);

                faceDetectionEffect.DesiredDetectionInterval = TimeSpan.FromMilliseconds(33);
                faceDetectionEffect.Enabled       = true;
                faceDetectionEffect.FaceDetected += FaceDetectionEffect_FaceDetected;

                CameraViewer.Source = _mediaCapture;
                await _mediaCapture.StartPreviewAsync();

                _previewProperties = _mediaCapture.VideoDeviceController.GetMediaStreamProperties(MediaStreamType.VideoPreview);
            }
            catch (Exception exception)
            {
                Messages = exception.ToString();
            }
        }
示例#12
0
 private async void ButtonGetWebCamPicture_Click(object sender, RoutedEventArgs e)
 {
     var file = await CameraActions.TakeWebCamPictureAndReturnFile(false);
     PerformFaceAnalysis(file);
 }
 // Use this for initialization
 void Awake()
 {
     cameraAction = CameraActions.IDLE;
 }
示例#14
0
    //

    private void Awake()
    {
        _cineBrain = GetComponent <CinemachineBrain>();
        UpdateActiveCam();
        ActiveCamera = this;
    }