コード例 #1
0
 private void CustomMTC_PlayPause(object sender, EventArgs e)
 {
     if (mpe.CurrentState == MediaElementState.Playing)
     {
         EllStoryboard.Pause();
         dispatcherTimer.Stop();
     }
     else if (mpe.CurrentState == MediaElementState.Paused || mpe.CurrentState == MediaElementState.Stopped)
     {
         EllStoryboard.Resume();
         dispatcherTimer.Start();
     }
 }
コード例 #2
0
 private void PlayPauseButton_Click(object sender, RoutedEventArgs e)
 {
     if (mpe.CurrentState == MediaElementState.Playing)
     {
         // 停止播放
         PlayPauseSymbol.Symbol = Symbol.Play;
         mpe.Pause();
         EllStoryboard.Pause();
         dispatcherTimer.Stop();
     }
     else if (mpe.CurrentState == MediaElementState.Paused || mpe.CurrentState == MediaElementState.Stopped)
     {
         // 继续播放
         PlayPauseSymbol.Symbol = Symbol.Pause;
         mpe.Play();
         EllStoryboard.Resume();
         dispatcherTimer.Start();
     }
 }
コード例 #3
0
        private async void PlaybackSession_PlaybackStateChanged(MediaPlaybackSession sender, object args)
        {
            await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
            {
                switch (State)
                {
                case MediaPlaybackState.Playing:
                    EllStoryboard.Resume();
                    break;

                case MediaPlaybackState.Paused:
                    EllStoryboard.Pause();
                    break;

                case MediaPlaybackState.None:
                    EllStoryboard.Stop();
                    break;
                }
            });
        }
コード例 #4
0
        private async void OpenFileButton_Click(object sender, RoutedEventArgs e)
        {
            var picker = new FileOpenPicker {
                ViewMode = PickerViewMode.Thumbnail,
                SuggestedStartLocation = PickerLocationId.MusicLibrary
            };

            string[] type = { ".mp3", ".mp4", ".avi", ".wmv", ".rmvb", ".mpeg", ".wma" };
            foreach (string s in type)
            {
                picker.FileTypeFilter.Add(s);
            }
            Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();

            if (file != null)
            {
                mpe.AutoPlay = true;
                //get the stream from the storage file
                var mediaStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);

                //set the source to the video stream
                mpe.SetSource(mediaStream, file.ContentType);
                EllStoryboard.Begin();
                // MediaSource.CreateFromStorageFile(file);
                JsonObject res = await Services.MusicService.SearchSong(file.Name);

                string     songId   = Services.MusicService.GetSongIdFromSearch(res);
                JsonObject songData = await Services.MusicService.GetSongDetail(songId);

                string url        = Services.MusicService.GetAlbumImageFromSong(songData);
                string AlbumTitle = Services.MusicService.GetAlbumTitleFromSong(songData);
                DiskImage.ImageSource = new BitmapImage(new Uri(url));


                TitleText.Text = file.Name;
                AlbumText.Text = AlbumTitle;
                EllStoryboard.Resume();
            }
        }
コード例 #5
0
 private async void PlaybackSession_PlaybackStateChanged(MediaPlaybackSession sender, object args)
 {
     await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
     {
         if (sender.PlaybackState == MediaPlaybackState.Playing)
         {
             if (EllStoryboard.GetCurrentState() == ClockState.Stopped)
             {
                 EllStoryboard.Begin();
             }
             else
             {
                 EllStoryboard.Resume();
                 RollTicker.Start();
             }
         }
         else if (sender.PlaybackState == MediaPlaybackState.Paused)
         {
             EllStoryboard.Pause();
             RollTicker.Stop();
         }
     });
 }