private void MediaElement_BufferingProgressChanged(object sender, RoutedEventArgs e) { Domain.ViewModels.Guide vm = (Domain.ViewModels.Guide) this.DataContext; var v = (MediaElement)sender; switch (v.CurrentState) { case MediaElementState.Buffering: vm.IsLoading = true; break; case MediaElementState.Closed: break; case MediaElementState.Opening: vm.IsLoading = true; break; case MediaElementState.Paused: break; case MediaElementState.Playing: vm.IsLoading = false; break; case MediaElementState.Stopped: vm.IsLoading = false; break; default: break; } }
private void VideoPlay(object sender, TappedRoutedEventArgs e) { var v = (MediaElement)sender; if (v.CurrentState == MediaElementState.Playing) { v.Pause(); } else { Domain.ViewModels.Guide vm = (Domain.ViewModels.Guide) this.DataContext; vm.IsLoading = true; v.Play(); } }
public Task OpenTextSpeechUI(Domain.ViewModels.Guide pagesToRead) { throw new NotImplementedException(); }
public async Task OpenTextSpeechUI(Domain.ViewModels.Guide guideToRead) { try { ObservableCollection <GuideBasePage> pagesToRead = guideToRead.Items; SpeechSynthesizer synth = new SpeechSynthesizer(); var voices = InstalledVoices.All.Where(o => o.Language.StartsWith("en")); if (voices.Count() > 0) { synth.SetVoice(voices.First()); guideToRead.BeingRead = true; if (guideToRead.SelectedPageIndex == 0) { var toRead = ((GuideIntro)pagesToRead[0]); if (!string.IsNullOrEmpty(toRead.Subject)) { task = synth.SpeakTextAsync(toRead.Subject); await task; } if (!string.IsNullOrEmpty(toRead.Summary)) { task = synth.SpeakTextAsync(toRead.Summary); await task; } guideToRead.SelectedPageIndex = 1; } for (int i = guideToRead.SelectedPageIndex; i < pagesToRead.Count; i++) { if (guideToRead.BeingRead == false) { break; } guideToRead.SelectedPage = (GuideBasePage)pagesToRead[i]; guideToRead.SelectedPageIndex = guideToRead.Items.IndexOf(guideToRead.SelectedPage); var item = (GuideStepItem)pagesToRead[i]; int m = 0; foreach (var line in item.Lines) { if (guideToRead.BeingRead == false) { break; } guideToRead.SelectedStepLine = m; try { task = synth.SpeakTextAsync(line.VoiceText); await task; } catch (Exception ex) { // throw; } m++; } } guideToRead.BeingRead = false; } else { MessageBox.Show("please install the english voice languague pack "); } } catch (Exception) { } }