Пример #1
0
        private async void PrevTrackButton_Tapped(object sender, TappedRoutedEventArgs e)
        {
            try
            {
                //HideToRightAnimation();

                if (!(await PlaybackActionHelper.PreviousTrack()))
                {
                    //showFromRightStoryboard.Begin();
                    animationState = AnimationState.None;
                    ViewModel.ProgressRingActive = false;
                    return;
                }

                SetPrevTrackCommandIssued();
                ViewModel.PrevButtonEnabled = false;
                await Task.Delay(1000);

                await PlayStatusTracker.RefreshPlayStatus();

                ViewModel.PrevButtonEnabled = true;
            }
            catch (UnauthorizedAccessException)
            {
                UnauthorizedHelper.OnUnauthorizedError();
            }
        }
Пример #2
0
        private async void SystemControls_ButtonPressed(SystemMediaTransportControls sender, SystemMediaTransportControlsButtonPressedEventArgs e)
        {
            await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async() =>
            {
                var mediaControls = SystemMediaTransportControls.GetForCurrentView();

                try
                {
                    switch (e.Button)
                    {
                    case SystemMediaTransportControlsButton.Play:
                        if (await PlaybackActionHelper.Play())
                        {
                            mediaControls.PlaybackStatus = MediaPlaybackStatus.Playing;
                        }

                        break;

                    case SystemMediaTransportControlsButton.Pause:
                        if (await PlaybackActionHelper.Pause())
                        {
                            mediaControls.PlaybackStatus = MediaPlaybackStatus.Paused;
                        }

                        break;

                    case SystemMediaTransportControlsButton.Stop:
                        if (await PlaybackActionHelper.Pause())
                        {
                            mediaControls.PlaybackStatus = MediaPlaybackStatus.Paused;
                        }

                        break;

                    case SystemMediaTransportControlsButton.Next:
                        if (await PlaybackActionHelper.NextTrack())
                        {
                            compactOverlayView?.PlayChangeTrackAnimation(reverse: false);
                        }

                        break;

                    case SystemMediaTransportControlsButton.Previous:
                        if (await PlaybackActionHelper.PreviousTrack())
                        {
                            compactOverlayView?.PlayChangeTrackAnimation(reverse: true);
                        }

                        // Necessary for progress bar update, in case 'previous' command goes to
                        // the beginning of the same track.
                        await Task.Delay(500);
                        await PlayStatusTracker.RefreshPlayStatus();

                        break;
                    }
                }
                catch (UnauthorizedAccessException)
                {
                    UnauthorizedHelper.OnUnauthorizedError();
                }
            });
        }