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(); }
private async void KioskPreview_Loaded(Object sender, Windows.UI.Xaml.RoutedEventArgs e) { App.Current.Suspending += Application_Suspending; var camera = await DeviceService.Instance.GetCameraAsync(); cameraService = CameraService.Instance; await cameraService.InitializeAsync(camera.Id); await cameraService.Preview.StartAsync(PreviewControl); }
public override async Task NavigatedToAsync(object navigationParameter) { await base.NavigatedToAsync(navigationParameter); await cameraService.InitializeAsync(); bool successTakingPhoto = await TakePhotoAsync(); if (successTakingPhoto) { await NavigateToServicesAsync(CurrentMediaFile); } else { // Navigate back. Dialog is already shown await NavigationService.NavigateBackAsync(); } }