Exemple #1
0
        //接受語音事件
        private void SreSpeechRecognized(object sender, SpeechRecognizedEventArgs e)
        {
            /*
             * if (e.Result.Confidence < 0.2)//肯定度低於0.6,判為錯誤語句
             * {
             *  return;
             * }*/
            switch (e.Result.Text.ToUpperInvariant())
            {
            case "STOP":
                VideoElement.Pause();
                break;

            case "PLAY":
                VideoElement.Play();
                break;

            case "LOUD":
                VideoElement.Volume += 2;
                break;

            case "XIAO SHENG":
                VideoElement.Volume += -1;
                break;

            case "TIMEOUT":
                unit = 7;
                MessageBox.Show("暫停");
                break;
            }
        }
Exemple #2
0
        /// <summary>
        /// Play next song in playlist.
        /// </summary>
        public async void BtnPlay_Click(object sender, RoutedEventArgs e)
        {
            _videoPlay   = true;
            _forcePaused = false;
            if (ComponentPlayer.Current == null)
            {
                BtnOpen_Click(sender, e);
                return;
            }

            switch (ComponentPlayer.Current.PlayerStatus)
            {
            case PlayerStatus.Playing:
                if (VideoElement?.Source != null)
                {
                    await VideoElement.Pause();
                }
                PauseMedia();
                break;

            case PlayerStatus.Ready:
            case PlayerStatus.Stopped:
            case PlayerStatus.Paused:
                if (VideoElement?.Source != null)
                {
                    await VideoElement.Play();
                }
                PlayMedia();
                break;
            }
        }
        private async void Commands_LoadMedia(object sender, ExecutedRoutedEventArgs e)
        {
            Command_UnloadMedia(null, null);
            CommonOpenFileDialog fileDialog = new CommonOpenFileDialog
            {
                Title                   = "打开媒体文件",
                DefaultDirectory        = Environment.CurrentDirectory,
                IsFolderPicker          = false,
                AllowNonFileSystemItems = true,
                EnsurePathExists        = true,
                Multiselect             = false,
                //Filters = { new CommonFileDialogFilter("波形音频", ".wav") },
                EnsureFileExists = true
            };

            if (fileDialog.ShowDialog() != CommonFileDialogResult.Ok)
            {
                return;
            }
            if (!DockControl?.IsVisible ?? true)
            {
                DockControl?.Show();
            }
            MediaLoaded = true;
            Playing     = true;
            //MediaPlayer.Play(new Media(_libVLC, fileDialog.FileName));
            await VideoElement.Open(new Uri(fileDialog.FileName));

            await VideoElement.Play();
        }
Exemple #4
0
 private async Task PlayVideo()
 {
     if (VideoElement.MediaState == MediaPlaybackState.Play)
     {
         return;
     }
     await VideoElement.Play();
 }
Exemple #5
0
        private async void VideoElement_MediaOpened(object sender, RoutedEventArgs e)
        {
            VideoElementBorder.Visibility = Visibility.Visible;
            if (!_videoPlay)
            {
                return;
            }
            await Task.Run(() => _waitAction?.Invoke());

            await VideoElement.Play();

            VideoElement.Position = _position;
        }
Exemple #6
0
 private void PlayStopButtonClick(object sender, RoutedEventArgs e)
 {
     if (PlayButton.IsChecked.Value)
     {
         VideoElement.Play();
         PlayButton.Content = "\ue103";
     }
     else
     {
         VideoElement.Pause();
         PlayButton.Content = "\ue102";
     }
 }
        private void ControllerViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            var property = typeof(TelloControllerViewModel).GetProperty(e.PropertyName);
            var value    = property.GetValue(sender);

            Debug.WriteLine($"{nameof(ControllerViewModel_PropertyChanged)} - property '{e.PropertyName}', value '{value}'");

            if (e.PropertyName == nameof(TelloControllerViewModel.IsVideoStreaming) && (bool)value)
            {
                VideoElement.Play();
            }
            else
            {
                VideoElement.Stop();
            }
        }
        public PlaybackView()
        {
            InitializeComponent();
            VideoElement.PositionChanged += (o, args) =>
                                            Position.Time = (long)args.Position.TotalMilliseconds;
            VideoElement.MediaOpened += (o, args) =>
                                        Position.Total = (long)args.Info.Duration.TotalMilliseconds;
            VideoElement.MediaFailed += (o, args) => Console.WriteLine(@"[FFME] MediaFailed : " + args.ErrorException);
            VideoElement.MediaEnded  += async(o, args) =>
            {
                await VideoElement.Seek(TimeSpan.Zero);

                await VideoElement.Play();
            };
            //VideoElement.RenderingVideo += RenderPreviewOnVideo;
            Position.OnPositionActiveChanged += () => SeekToPosition(Position.Time);
        }
Exemple #9
0
        //private async void VideoPlay()
        //{
        //    //await VideoElement.Pause();

        //    //await VideoElement.Play();
        //}

        private async Task VideoJumpTo(int milliseconds)
        {
            _waitActionCts = new MyCancellationTokenSource();
            Guid?guid       = _waitActionCts?.Guid;
            var  trueOffset = milliseconds + _videoOffset;

            if (trueOffset < 0)
            {
                await VideoElement.Pause();

                VideoElement.Position = TimeSpan.FromMilliseconds(0);

                await Task.Run(() => { Thread.Sleep(TimeSpan.FromMilliseconds(-trueOffset)); });

                if (_waitActionCts?.Guid != guid || _waitActionCts?.IsCancellationRequested == true)
                {
                    return;
                }
                if (!_forcePaused)
                {
                    await VideoElement.Play();
                }
                else
                {
                    await VideoElement.Pause();
                }
            }
            else
            {
                //if (_mediaEnded)
                //{
                //    VideoElement.Position = TimeSpan.FromMilliseconds(0);
                //    await Task.Run(() => { Thread.Sleep(10); });
                //}
                if (!_forcePaused)
                {
                    await VideoElement.Play();
                }
                else
                {
                    await VideoElement.Pause();
                }
                VideoElement.Position = TimeSpan.FromMilliseconds(trueOffset);
            }
        }
Exemple #10
0
 //動作完成時,影片重複播放
 private void ResetTime()
 {
     if (preTime != times)
     {
         VideoElement.Stop();
         VideoElement.Play();
         sec        = 100;
         preTime    = times;
         A.Value    = 100;
         failSecond = 1;
         if (unit == 1 || unit == 2)
         {
             finish = 1;
         }
         else if (unit == 3 || unit == 4)
         {
             finish = 2;
         }
         else
         {
             finish = 0;
         }
     }
 }
Exemple #11
0
 private void Play_OnClick(object sender, RoutedEventArgs e)
 {
     VideoElement.Play();
     PlayButton.Visibility = Visibility.Collapsed;
 }
Exemple #12
0
        private async Task SafelyRecreateVideoElement(bool showVideo)
        {
            await Task.Run(async() =>
            {
                await VideoElement.Stop();
                Dispatcher.Invoke(() =>
                {
                    VideoElement.Position = TimeSpan.Zero;
                    VideoElement.Source   = null;

                    VideoElement.MediaOpened    -= OnMediaOpened;
                    VideoElement.MediaFailed    -= OnMediaFailed;
                    VideoElement.MediaEnded     -= OnMediaEnded;
                    VideoElement.SeekingStarted -= OnSeekingStarted;
                    VideoElement.SeekingEnded   -= OnSeekingEnded;

                    //VideoElement.Dispose();
                    VideoElement = null;
                    VideoElementBorder.Visibility = Visibility.Hidden;
                    VideoElement = new Unosquare.FFME.MediaElement
                    {
                        IsMuted        = true,
                        LoadedBehavior = MediaPlaybackState.Manual,
                        Visibility     = Visibility.Visible,
                    };
                    VideoElement.MediaOpened += OnMediaOpened;
                    VideoElement.MediaFailed += OnMediaFailed;
                    VideoElement.MediaEnded  += OnMediaEnded;

                    if (showVideo)
                    {
                        VideoElement.SeekingStarted += OnSeekingStarted;
                        VideoElement.SeekingEnded   += OnSeekingEnded;
                    }

                    VideoElementBorder.Children.Add(VideoElement);
                });
            });

            async void OnMediaOpened(object sender, MediaOpenedEventArgs e)
            {
                VideoElementBorder.Visibility = Visibility.Visible;
                if (!_videoPlay)
                {
                    return;
                }
                await Task.Run(() => _waitAction?.Invoke());

                if (VideoElement == null /* || VideoElement.IsDisposed*/)
                {
                    return;
                }
                await VideoElement.Play();

                VideoElement.Position = _position;
            }

            async void OnMediaFailed(object sender, MediaFailedEventArgs e)
            {
                VideoElementBorder.Visibility = Visibility.Hidden;
                //MsgBox.Show(this, e.ErrorException.ToString(), "不支持的视频格式", MessageBoxButton.OK, MessageBoxImage.Error);
                if (!_videoPlay)
                {
                    return;
                }
                await SafelyRecreateVideoElement(false);

                PlayMedia();
            }

            void OnMediaEnded(object sender, EventArgs e)
            {
                if (VideoElement == null /*|| VideoElement.IsDisposed*/)
                {
                    return;
                }
                VideoElement.Position = TimeSpan.Zero;
            }

            void OnSeekingStarted(object sender, EventArgs e)
            {
            }

            void OnSeekingEnded(object sender, EventArgs e)
            {
                if (!_videoPlay)
                {
                    return;
                }
                PlayMedia();
            }
        }
Exemple #13
0
 void btnPlayPause_Unchecked(object sender, RoutedEventArgs e)
 {
     VideoElement.Play();
     btnPlayPause.Content = "Pause";
 }
 private void PlayFile(string file)
 {
     VideoElement.Source = new Uri(file);
     LyricsElement.Text  = "TEST text";
     VideoElement.Play();
 }
Exemple #15
0
 private void btn_play_Click(object sender, RoutedEventArgs e)
 {
     VideoElement.Play();  // 控制影片播放
 }
Exemple #16
0
        public Unit_Page(int selectUnit, int selectAction)
        {
            if (selectUnit == 1)
            {
                unit_1 = new Unit_1();
            }
            else if (selectUnit == 2)
            {
                unit_2 = new Unit_2();
            }
            else if (selectUnit == 3)
            {
                unit_3 = new Unit_3();
            }
            else if (selectUnit == 4)
            {
                unit_4 = new Unit_4();
            }

            else if (selectUnit == 0)
            {
                WU = new WarmUp();
            }


            InitializeComponent();
            unit   = selectUnit;
            action = selectAction;
            //sensor.Start(); //啟動Kinect Sensor
            sensor.ElevationAngle = 0; //調整Kinect角度為0
            //載入與卸載
            var parameters = new TransformSmoothParameters
            {
                Smoothing          = 0.3f,
                Correction         = 0.0f,
                Prediction         = 0.0f,
                JitterRadius       = 1.0f,
                MaxDeviationRadius = 0.5f
            };

            setVoice();
            sensor.SkeletonStream.Enable(parameters); //載入平滑處理參數
            sensor.ColorStream.Enable();              //開啟,彩色影像
            sensor.SkeletonStream.Enable();           //開啟,骨架追蹤

            GetVideo                      = sign.ReturnVideo(unit);
            VideoElement.Source           = new Uri(Directory.GetCurrentDirectory() + GetVideo[0]);
            VideoElement.LoadedBehavior   = MediaState.Manual;
            VideoElement.UnloadedBehavior = MediaState.Manual;
            VideoElement.Play();

            GoodElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\good.m4a");
            GoodElement.LoadedBehavior   = MediaState.Manual;
            GoodElement.UnloadedBehavior = MediaState.Manual;

            BGMusicElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\黃金傳說 - 做菜歌.mp3");
            BGMusicElement.LoadedBehavior   = MediaState.Manual;
            BGMusicElement.UnloadedBehavior = MediaState.Manual;
            BGMusicElement.Play();

            OneElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\1.mp3");
            OneElement.LoadedBehavior   = MediaState.Manual;
            OneElement.UnloadedBehavior = MediaState.Manual;

            TwoElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\2.mp3");
            TwoElement.LoadedBehavior   = MediaState.Manual;
            TwoElement.UnloadedBehavior = MediaState.Manual;

            ThreeElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\3.mp3");
            ThreeElement.LoadedBehavior   = MediaState.Manual;
            ThreeElement.UnloadedBehavior = MediaState.Manual;

            FourElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\4.mp3");
            FourElement.LoadedBehavior   = MediaState.Manual;
            FourElement.UnloadedBehavior = MediaState.Manual;

            FiveElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\5.mp3");
            FiveElement.LoadedBehavior   = MediaState.Manual;
            FiveElement.UnloadedBehavior = MediaState.Manual;

            SixElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\6.mp3");
            SixElement.LoadedBehavior   = MediaState.Manual;
            SixElement.UnloadedBehavior = MediaState.Manual;

            SevenElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\7.mp3");
            SevenElement.LoadedBehavior   = MediaState.Manual;
            SevenElement.UnloadedBehavior = MediaState.Manual;

            EightElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\8.mp3");
            EightElement.LoadedBehavior   = MediaState.Manual;
            EightElement.UnloadedBehavior = MediaState.Manual;

            NineElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\9.mp3");
            NineElement.LoadedBehavior   = MediaState.Manual;
            NineElement.UnloadedBehavior = MediaState.Manual;

            TenElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\10.mp3");
            TenElement.LoadedBehavior   = MediaState.Manual;
            TenElement.UnloadedBehavior = MediaState.Manual;

            ElevenElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\11.mp3");
            ElevenElement.LoadedBehavior   = MediaState.Manual;
            ElevenElement.UnloadedBehavior = MediaState.Manual;

            TwelveElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\12.mp3");
            TwelveElement.LoadedBehavior   = MediaState.Manual;
            TwelveElement.UnloadedBehavior = MediaState.Manual;

            ThirteenElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\13.mp3");
            ThirteenElement.LoadedBehavior   = MediaState.Manual;
            ThirteenElement.UnloadedBehavior = MediaState.Manual;

            FourteenElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\14.mp3");
            FourteenElement.LoadedBehavior   = MediaState.Manual;
            FourteenElement.UnloadedBehavior = MediaState.Manual;

            FifteenElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\15.mp3");
            FifteenElement.LoadedBehavior   = MediaState.Manual;
            FifteenElement.UnloadedBehavior = MediaState.Manual;

            SixteenElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\16.mp3");
            SixteenElement.LoadedBehavior   = MediaState.Manual;
            SixteenElement.UnloadedBehavior = MediaState.Manual;

            SeventeenElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\17.mp3");
            SeventeenElement.LoadedBehavior   = MediaState.Manual;
            SeventeenElement.UnloadedBehavior = MediaState.Manual;

            EighteenElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\18.mp3");
            EighteenElement.LoadedBehavior   = MediaState.Manual;
            EighteenElement.UnloadedBehavior = MediaState.Manual;

            NineteenElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\19.mp3");
            NineteenElement.LoadedBehavior   = MediaState.Manual;
            NineteenElement.UnloadedBehavior = MediaState.Manual;

            CMoneElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\CM1.mp3");
            CMoneElement.LoadedBehavior   = MediaState.Manual;
            CMoneElement.UnloadedBehavior = MediaState.Manual;

            CMtwoElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\CM2.mp3");
            CMtwoElement.LoadedBehavior   = MediaState.Manual;
            CMtwoElement.UnloadedBehavior = MediaState.Manual;

            CMthreeElement.Source           = new Uri(Directory.GetCurrentDirectory() + "\\Source\\Voice\\CM3.mp3");
            CMthreeElement.LoadedBehavior   = MediaState.Manual;
            CMthreeElement.UnloadedBehavior = MediaState.Manual;
        }