예제 #1
0
        /// <summary>
        /// 双击我喜欢的歌曲
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void ListBox_myFavoriteSongs_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
        {
            ListBox   listBox   = (ListBox)sender;
            SongsItem songsItem = listBox.SelectedItem as SongsItem;

            if (songsItem == null)
            {
                return;
            }
            //SongUrlRoot songUrlRoot = SongService.GetMusicUrl(songsItem.Id);
            //if (songUrlRoot == null)
            //    return;
            ////添加播放列表
            //if (ListBox_myFavoriteSongs.ItemsSource == null)
            //    return;
            //if (MainPage.PlayingListId != 2)//已在播放此歌单,仅修改播放歌曲,否则,重置播放列表及历史记录
            //{
            //    (Application.Current as App).myMainPage.currentPlayList.Clear();
            //    foreach (var temp in ListBox_myFavoriteSongs.ItemsSource as List<SongsItem>)
            //        (Application.Current as App).myMainPage.currentPlayList.Add(temp);
            //    (Application.Current as App).myMainPage.playHistoryIndex.Clear();
            //    //MainPage.PlayingListId = 2;
            //}
            ////修改mainpage以触发修改正在播放的音乐
            //(Application.Current as App).myMainPage.ChnagePlayingSong(songsItem, songUrlRoot,-2);
            PlayingService.PlayingListId = songsItem.al.id;
            await PlayingService.ChangePlayingSong(songsItem.Id, ListBox_myFavoriteSongs.ItemsSource as List <SongsItem>, songsItem);
        }
예제 #2
0
        private async void ListBox_musicDetail_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
        {
            ListBox   listBox   = sender as ListBox;
            SongsItem songsItem = listBox.SelectedItem as SongsItem;

            if (songsItem == null)
            {
                return;
            }
            //SongUrlRoot songUrlRoot = SongService.GetMusicUrl(songsItem.Id);
            //if (songUrlRoot == null)
            //    return;

            ////修改播放列表
            //if (MainPage.PlayingListId != albumRoot.album.id)//已在播放此歌单,仅修改播放歌曲,否则,重置播放列表及历史记录
            //{
            //    (Application.Current as App).myMainPage.currentPlayList.Clear();
            //    foreach (var temp in albumRoot.songs)
            //        (Application.Current as App).myMainPage.currentPlayList.Add(temp);
            //    (Application.Current as App).myMainPage.playHistoryIndex.Clear();
            //    //MainPage.PlayingListId = albumRoot.album.id;
            //}
            ////修改mainpage以触发修改正在播放的音乐
            //(Application.Current as App).myMainPage.ChnagePlayingSong(songsItem, songUrlRoot, albumRoot.album.id);
            PlayingService.PlayingListId = albumRoot.album.id;
            await PlayingService.ChangePlayingSong(songsItem.Id, albumRoot.songs, songsItem);
        }
예제 #3
0
        private async void ListBox_Click(object sender, DoubleTappedRoutedEventArgs e)
        {
            ListBox listBox = sender as ListBox;

            ProgressBar_Loading.Visibility = Visibility.Visible;
            long id = (listBox.SelectedItem as RecordDataItem).Song.Id;
            // MusicDetailRoot musicDetailRoot=await Task.Run(()=>SongService.GetMusicDetail_Get(id.ToString()));
            //if (musicDetailRoot == null || musicDetailRoot.songs == null)
            //{
            //    ProgressBar_Loading.Visibility = Visibility.Collapsed;
            //    return;
            //}
            //SongUrlRoot songUrlRoot = await Task.Run(() => SongService.GetMusicUrl(musicDetailRoot.songs.First().Id));
            //if (songUrlRoot == null)
            //{
            //    ProgressBar_Loading.Visibility = Visibility.Collapsed;
            //    return;
            //}
            //ProgressBar_Loading.Visibility = Visibility.Collapsed;
            ////修改播放列表
            //(Application.Current as App).myMainPage.currentPlayList.Clear();
            //(Application.Current as App).myMainPage.currentPlayList.Add(musicDetailRoot.songs.First());
            ////修改mainpage以触发修改正在播放的音乐
            //(Application.Current as App).myMainPage.ChnagePlayingSong(musicDetailRoot.songs.First(), songUrlRoot, (musicDetailRoot.songs.First().Id + 4) * -1);
            await PlayingService.ChangePlayingSong(id, null);

            ProgressBar_Loading.Visibility = Visibility.Collapsed;
        }
예제 #4
0
        /// <summary>
        /// 双击某一首歌
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void ListBox_musicDetail_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
        {
            ListBox   listBox   = sender as ListBox;
            SongsItem songsItem = listBox.SelectedItem as SongsItem;

            PlayingService.PlayingListId = playListDetailRoot.playlist.id;
            await PlayingService.ChangePlayingSong(songsItem.Id, musicDetailRootSource.songs, songsItem);
        }
예제 #5
0
 private void Button_next_Click(object sender, RoutedEventArgs e)
 {
     if (PlayingService.IsPlayingSong)
     {
         PlayingService.PlayNextSongs();
     }
     else
     {
         PlayingService.PlayNextRadio();
     }
 }
예제 #6
0
 private void Button_previous_Click(object sender, RoutedEventArgs e)
 {
     if (PlayingService.IsPlayingSong)
     {
         PlayingService.PlayLastSongs();
     }
     else
     {
         PlayingService.PlayLastRadio();
     }
 }
예제 #7
0
        /// <summary>
        /// 播放全部日推歌曲
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void Button_playDailySongs_Click(object sender, RoutedEventArgs e)
        {
            if (ListBox_recommendMusic.ItemsSource == null)
            {
                return;
            }
            var songs = ListBox_recommendMusic.ItemsSource as List <SongsItem>;

            PlayingService.PlayingListId = songs.First().al.id;
            await PlayingService.ChangePlayingSong(songs.First().Id, songs, songs.First());
        }
예제 #8
0
 private void CommandManager_PreviousReceived(MediaPlaybackCommandManager sender, MediaPlaybackCommandManagerPreviousReceivedEventArgs args)
 {
     if (PlayingService.IsPlayingSong)
     {
         PlayingService.PlayLastSongs();
     }
     else
     {
         PlayingService.PlayLastRadio();
     }
 }
예제 #9
0
 private void Button_Next_Click(object sender, RoutedEventArgs e)
 {
     if (PlayingService.IsPlayingSong)
     {
         PlayingService.PlayNextSongs();
     }
     else
     {
         PlayingService.PlayNextRadio();
     }
     MyMainPage_OnIsOrNotFavoriteChanged();
 }
예제 #10
0
        private async void ListBox_hotSongs_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
        {
            ListBox   listBox   = sender as ListBox;
            SongsItem songsItem = listBox.SelectedItem as SongsItem;

            if (songsItem == null)
            {
                return;
            }

            PlayingService.PlayingListId = songsItem.al.id;
            await PlayingService.ChangePlayingSong(songsItem.Id, artistBaseDetailRoot.hotSongs, songsItem);
        }
예제 #11
0
        private async void ListBox_simiSongs_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
        {
            ListBox   listBox   = sender as ListBox;
            SongsItem songsItem = listBox.SelectedItem as SongsItem;

            if (songsItem == null)
            {
                return;
            }
            ProgressBar_loadSimiSongs.Visibility = Visibility.Visible;
            PlayingService.PlayingListId         = songsItem.al.id;
            await PlayingService.ChangePlayingSong(songsItem.Id, ListBox_simiSongs.ItemsSource as List <SongsItem>, songsItem);
        }
예제 #12
0
        private async void ListBox_searchSong_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
        {
            ListBox   listBox   = (ListBox)sender;
            SongsItem songsItem = listBox.SelectedItem as SongsItem;

            if (songsItem == null)
            {
                return;
            }

            PlayingService.PlayingListId = songsItem.al.id;
            await PlayingService.ChangePlayingSong(songsItem.Id, ListBox_searchSong.ItemsSource as List <SongsItem>, songsItem);
        }
예제 #13
0
        /// <summary>
        /// 播放列表双击
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void ListBox_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
        {
            ListBox listBox            = (ListBox)sender;
            PlayingSongBaseObject song = listBox.SelectedItem as PlayingSongBaseObject;

            if (PlayingService.IsPlayingSong)
            {
                await PlayingService.ChangePlayingSong(song.Id);
            }
            else
            {
                await PlayingService.ChangePlayingRadio(song.Id);
            }
        }
예제 #14
0
파일: App.xaml.cs 프로젝트: qedsd/MyNCMusic
 private void Page_CloseRequested(object sender, SystemNavigationCloseRequestedPreviewEventArgs e)
 {
     PlayingService.Volume = myMainPage._mediaPlayer.Volume;
     PlayingService.Save();
     if (myMainPage == null || PlayingService.PlayDurationStopwatch == null)
     {
         return;
     }
     myMainPage.playDurationStopwatch.Stop();
     if (PlayingService.PlayingSong == null)
     {
         return;
     }
     System.Threading.Tasks.Task.Run(() => SongService.MarkPlayDuration(PlayingService.PlayingSong.Id, PlayingService.PlayingListId, PlayingService.PlayDurationStopwatch.ElapsedMilliseconds / 1000));
 }
예제 #15
0
 private async void _mediaPlayer_MediaEnded(MediaPlayer sender, object args)
 {
     await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
     {
         _mediaTimelineController.Pause();
         if (PlayingService.IsPlayingSong)
         {
             PlayingService.PlayNextSongs();
         }
         else
         {
             PlayingService.PlayNextRadio();
         }
     });
 }
예제 #16
0
        /// <summary>
        /// 播放全部我喜欢的歌曲
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void Button_playFavoriteSongs_Click(object sender, RoutedEventArgs e)
        {
            if (ListBox_myFavoriteSongs.ItemsSource == null)
            {
                return;
            }
            //(Application.Current as App).myMainPage.currentPlayList.Clear();
            //foreach (var temp in ListBox_myFavoriteSongs.ItemsSource as List<SongsItem>)
            //    (Application.Current as App).myMainPage.currentPlayList.Add(temp);
            //(Application.Current as App).myMainPage.playHistoryIndex.Clear();
            //MainPage.PlayingListId = 2;
            //(Application.Current as App).myMainPage.PlayNextSongs(-1);

            var songs = ListBox_myFavoriteSongs.ItemsSource as List <SongsItem>;

            PlayingService.PlayingListId = songs.First().al.id;
            await PlayingService.ChangePlayingSong(songs.First().Id, songs, songs.First());
        }
예제 #17
0
        private async void PlayingService_OnPlayingSongChanged()
        {
            ChangeImage();
            ChangePlayBar(PlayingService.PlayingSong, PlayingService.PlayingAlbumBitmapImage, PlayingService.PlayingSong.Name, PlayingService.PlayingSong.ar.First().name, PlayingService.PlayingSong.al.name, PlayingService.PlayingSong.dt / 1000);
            if ((Application.Current as App).playingPage != null)
            {
                (Application.Current as App).playingPage.LoadLayout();
            }
            if ((Application.Current as App).compactOverlayPage != null)
            {
                (Application.Current as App).compactOverlayPage.UpdateLayout();
            }
            if (PlayingService.PlayingSongUrlRoot.data.First().url == null)
            {
                NotifyPopup notifyPopup = new NotifyPopup("播放地址错误");
                notifyPopup.Show();
                //跳过当前到下一首
                PlayingService.PlayNextSongs();
                return;
            }
            _mediaSource = await Task.Run(() => MediaSource.CreateFromUri(new Uri(PlayingService.PlayingSongUrlRoot.data.First().url)));

            _mediaSource.OpenOperationCompleted += _mediaSource_OpenOperationCompleted;
            _mediaPlaybackItem  = new MediaPlaybackItem(_mediaSource);
            _mediaPlayer.Source = _mediaPlaybackItem;
            _mediaTimelineController.Start();
            //SetLastPlayedSong();

            //修改SMTC 显示的元数据

            MediaItemDisplayProperties props = _mediaPlaybackItem.GetDisplayProperties();

            props.Type = Windows.Media.MediaPlaybackType.Music;
            props.MusicProperties.Title  = PlayingService.PlayingSong.Name;
            props.MusicProperties.Artist = PlayingService.PlayingSong.ar.First().name;
            props.Thumbnail = RandomAccessStreamReference.CreateFromFile(await ApplicationData.Current.LocalFolder.TryGetItemAsync(ConfigService.ImageFilename) as StorageFile);
            _mediaPlaybackItem.ApplyDisplayProperties(props);
        }
예제 #18
0
        /// <summary>
        /// 获取上一次播放的信息
        /// </summary>
        async void GetLastPlayingInfo()
        {
            ChangeImage();
            PlayingService.PlayingAlbumBitmapImage = await FileHelper.ReadLoaclBitmapImage(ConfigService.ImageFilename);

            if (await PlayingService.Load())
            {
                Slider_Volume.Value = PlayingService.Volume * 100;
                if (PlayingService.IsPlayingSong)
                {
                    if (PlayingService.PlayingSong != null)
                    {
                        ChangePlayBar(PlayingService.PlayingSong, PlayingService.PlayingAlbumBitmapImage, PlayingService.PlayingSong.Name, PlayingService.PlayingSong.ar.First().name, PlayingService.PlayingSong.al.name, PlayingService.PlayingSong.dt / 1000, false);
                    }
                }
                else
                {
                    if (PlayingService.PlayingRadio != null)
                    {
                        ChangePlayBar(PlayingService.PlayingAlbumBitmapImage, PlayingService.PlayingRadio.Name, PlayingService.PlayingRadio.Dj.Nickname, PlayingService.PlayingRadio.Name, PlayingService.PlayingRadio.MainSong.Duration / 1000);
                    }
                }
                UpDatePlayOrderStateIcon();
                if (PlayingService.PlayingSongUrlRoot != null)
                {
                    SongUrlRoot songUrlRoot = SongService.GetMusicUrl(PlayingService.PlayingSongUrlRoot.data.First().id);
                    //_mediaSource = await Task.Run(() => MediaSource.CreateFromUri(new Uri(PlayingService.PlayingSongUrlRoot.data.First().url)));
                    _mediaSource = await Task.Run(() => MediaSource.CreateFromUri(new Uri(songUrlRoot.data.First().url)));

                    _mediaSource.OpenOperationCompleted += _mediaSource_OpenOperationCompleted;
                    _mediaSource.StateChanged           += _mediaSource_StateChanged;
                    _mediaPlaybackItem  = new MediaPlaybackItem(_mediaSource);
                    _mediaPlayer.Source = _mediaPlaybackItem;
                }
            }
        }
예제 #19
0
 /// <summary>
 /// 播放全部
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private async void Button_playAll_Click(object sender, RoutedEventArgs e)
 {
     PlayingService.PlayingListId = playListDetailRoot.playlist.id;
     await PlayingService.ChangePlayingSong(musicDetailRootSource.songs.First().Id, musicDetailRootSource.songs, musicDetailRootSource.songs.First());
 }
예제 #20
0
 private async void Button_playAll_Click(object sender, RoutedEventArgs e)
 {
     PlayingService.PlayingListId = albumRoot.album.id;
     await PlayingService.ChangePlayingSong(albumRoot.songs.First().Id, albumRoot.songs);
 }
예제 #21
0
 private async void ListBox_RadioDetail_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
 {
     await PlayingService.ChangePlayingRadio((((ListBox)sender).SelectedItem as RadioSongItem).MainSong.Id, radioSongItems);
 }
예제 #22
0
 private async void Button_allSongs_Click(object sender, RoutedEventArgs e)
 {
     PlayingService.PlayingListId = artistBaseDetailRoot.hotSongs.First().al.id;
     await PlayingService.ChangePlayingSong(artistBaseDetailRoot.hotSongs.First().Id, artistBaseDetailRoot.hotSongs, artistBaseDetailRoot.hotSongs.First());
 }