コード例 #1
0
        private async void RadioAppBtn_Click(object sender, RoutedEventArgs e)
        {
            AppBarButton btn   = sender as AppBarButton;
            bool         error = false;

            if (btn != null)
            {
                await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() =>
                {
                    try
                    {
                        if ((btn.Icon as BitmapIcon).UriSource == uriMute)
                        {
                            urlRadio = await RadioUrlParser.Parse();
                            if (BackgroundMediaPlayer.Current.PlaybackSession.PlaybackState != MediaPlaybackState.Playing)
                            {
                                var message = new ValueSet
                                {
                                    {
                                        "Play",
                                        urlRadio
                                    }
                                };
                                BackgroundMediaPlayer.SendMessageToBackground(message);
                            }
                        }
                        else
                        {
                            BackgroundMediaPlayer.Current.Pause();
                        }
                    }
                    catch (Exception)
                    {
                        (btn.Icon as BitmapIcon).UriSource = uriMute;
                        error = true;
                    }
                    if (error)
                    {
                        await(new MessageDialog("Ошибка в воспоизведении радио.")).ShowAsync();
                    }
                });
            }
        }
コード例 #2
0
ファイル: MainPage.xaml.cs プロジェクト: TalMars/Course_Work
        /// <summary>
        /// Вызывается перед отображением этой страницы во фрейме.
        /// </summary>
        /// <param name="e">Данные события, описывающие, каким образом была достигнута эта страница.
        /// Этот параметр обычно используется для настройки страницы.</param>
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            if (urlRadio == null)
            {
                try
                {
                    urlRadio = await RadioUrlParser.Parse();
                } catch (AggregateException) {
                    RadioPlayer.IsEnabled = false;
                }
            }
            await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
            {
                if (BackgroundMediaPlayer.Current.CurrentState == MediaPlayerState.Paused | BackgroundMediaPlayer.Current.CurrentState == MediaPlayerState.Closed)
                {
                    RadioPlayer.IsOn = false;
                }
            });

            BackgroundMediaPlayer.Current.CurrentStateChanged += radioPlayer_CurrentStateChanged;
        }