コード例 #1
0
        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;
            }
        }
コード例 #2
0
        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();
            }
        }
コード例 #3
0
ファイル: UiUx.cs プロジェクト: wuchangqi/ifixit-microsoft
 public Task OpenTextSpeechUI(Domain.ViewModels.Guide pagesToRead)
 {
     throw new NotImplementedException();
 }
コード例 #4
0
ファイル: UiUx.cs プロジェクト: wuchangqi/ifixit-microsoft
        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)
            {
            }
        }