Esempio n. 1
0
        private void Start()
        {
            CameraService    cameraService    = new CameraService();
            CognitiveService cognitiveService = new CognitiveService();


            int countSearchTimes = 0;

            _isScanning = true;
            List_wordsRicognized.Visibility = Visibility.Collapsed;
            Button_start.Visibility         = Visibility.Collapsed;
            Button_stop.Visibility          = Visibility.Visible;
            Grid_loading.Visibility         = Visibility.Visible;
            DM_logo.Visibility = Visibility.Collapsed;

            Task.Factory.StartNew(async() =>
            {
                if (cameraService.IsInitialized() == false)
                {
                    await cameraService.InitializeAsync();
                }

                while (_isScanning)
                {
                    countSearchTimes++;

                    Task.Delay(Config.Instance.ScanTimeDeley).Wait();

                    if (_isScanning)
                    {
                        var stream = (await cameraService.CapturePhoto());
                        stream.Seek(0);
                        byte[] imgBytes = new byte[stream.Size];
                        await stream.AsStream().ReadAsync(imgBytes, 0, (int)stream.Size);

                        var _words = await cognitiveService.ReadTextFromImage(imgBytes);

                        if (_words != null && _words.Count > 0)
                        {
                            await UIDispatcher.MainView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                            {
                                WordsRecognized.Clear();
                                foreach (var item in _words)
                                {
                                    WordsRecognized.Add(item);
                                }
                                Grid_loading.Visibility         = Visibility.Collapsed;
                                List_wordsRicognized.Visibility = Visibility.Visible;
                                Button_start.Visibility         = Visibility.Visible;
                                Button_stop.Visibility          = Visibility.Collapsed;
                            });

                            _isScanning = false;
                        }
                    }
                }
            }).Wait();
        }