Ejemplo n.º 1
0
        private async void ListBox_album_Tapped(object sender, TappedRoutedEventArgs e)
        {
            CADataItem cADataItem = ((ListBox)sender).SelectedItem as CADataItem;

            if (cADataItem == null)
            {
                return;
            }
            if (cADataItem.id == PlayingService.PlayingListId)
            {
                Frame.Navigate(typeof(AlbumDetail));
            }
            else
            {
                ProgressBar_loadAlbum.Visibility = Visibility.Visible;
                AlbumRoot albumRoot = await Task.Run(() => AlbumService.GetAlbum(cADataItem.id));

                if (albumRoot == null)
                {
                    ProgressBar_loadAlbum.Visibility = Visibility.Collapsed;
                    return;
                }
                Frame.Navigate(typeof(AlbumDetail), albumRoot);
                ProgressBar_loadAlbum.Visibility = Visibility.Collapsed;
            }
        }
Ejemplo n.º 2
0
        private async void Button_Album_Click(object sender, RoutedEventArgs e)
        {
            Button button = sender as Button;
            long   id     = (button.DataContext as RecordDataItem).Song.al.id;

            ProgressBar_Loading.Visibility = Visibility.Visible;
            AlbumRoot albumRoot = await Task.Run(() => AlbumService.GetAlbum(id));

            ProgressBar_Loading.Visibility = Visibility.Collapsed;
            Frame.Navigate(typeof(AlbumDetail), albumRoot);
        }
Ejemplo n.º 3
0
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     base.OnNavigatedTo(e);  //将传过来的数据 类型转换一下  
     if (e.Parameter == null)
     {
         return;
     }
     albumRoot = (AlbumRoot)e.Parameter;
     //if (albumRoot == null)
     //    return;
     LoadLayout();
 }
Ejemplo n.º 4
0
        async void UpDateSong()
        {
            _albumRoot               = PlayingService.PlayingAlbum;
            _songsItem               = PlayingService.PlayingSong;
            Image_album.Source       = PlayingService.PlayingAlbumBitmapImage;
            Button_albumName.Content = _albumRoot.album.name;
            string name = "";

            for (int i = 0; i < _songsItem.ar.Count; i++)
            {
                if (i != 0)
                {
                    name += "/";
                }
                name += _songsItem.ar[i].name;
            }
            ListBox_artists.ItemsSource = _songsItem.ar;
            Button_artistName.Content   = name;
            TextBlock_songName.Text     = _songsItem.Name;
            LyricRoot lyricRoot = await Task.Run(() => LyricService.GetLyric(_songsItem.Id));

            if (lyricRoot == null)
            {
                ListBox_lyric.ItemsSource = null;
                return;
            }
            lyricStrs = LyricService.GetLyricStrs(lyricRoot);
            if (lyricStrs != null)
            {
                if (lyricStrs.Count == 0)
                {
                    DateTime dateTime = DateTime.Now;
                    lyricStrs.Add(new LyricStr()
                    {
                        DateTime = dateTime, Original = "无歌词"
                    });
                }
                ListBox_lyric.ItemsSource = lyricStrs;
                ListBox_lyric.ScrollIntoView(lyricStrs.First());
            }
            UpDateComment();
            UpDateSimiSongs();
        }
Ejemplo n.º 5
0
        private async void Button_album_Click(object sender, RoutedEventArgs e)
        {
            SongsItem songsItem = ((Button)sender).DataContext as SongsItem;

            if (songsItem == null)
            {
                return;
            }
            ProgressBar_loading.Visibility = Visibility.Visible;
            AlbumRoot albumRoot = await Task.Run(() => AlbumService.GetAlbum(songsItem.al.id));

            if (albumRoot == null)
            {
                ProgressBar_loading.Visibility = Visibility.Collapsed;
                return;
            }
            ProgressBar_loading.Visibility = Visibility.Collapsed;
            Frame.Navigate(typeof(AlbumDetail), albumRoot);
        }
Ejemplo n.º 6
0
        private async void AdaptiveGridViewControl_ItemClick(object sender, ItemClickEventArgs e)
        {
            Album album = e.ClickedItem as Album;

            if (album.id == PlayingService.PlayingListId)
            {
                Frame.Navigate(typeof(AlbumDetail));
            }
            else
            {
                ProgressBar_loadAlbum.Visibility = Visibility.Visible;
                AlbumRoot albumRoot = await Task.Run(() => AlbumService.GetAlbum(album.id));

                if (albumRoot == null)
                {
                    return;
                }
                Frame.Navigate(typeof(AlbumDetail), albumRoot);
                ProgressBar_loadAlbum.Visibility = Visibility.Collapsed;
            }
        }
Ejemplo n.º 7
0
        private List <Item> GetListAlbuns(string subject)
        {
            RootObject lstAlbum = new RootObject
            {
                albums = new AlbumRoot
                {
                    items = new List <Item>()
                },
                artists = new Artist {
                    items = new List <Item>()
                },
            };

            RootObject artists = JsonConvert.DeserializeObject <RootObject>(Spotify.Api.GetArtistByGenre(subject, "50", "50"));

            foreach (var artist in artists.artists.items)
            {
                AlbumRoot album = JsonConvert.DeserializeObject <AlbumRoot>(Spotify.Api.GetAlbumByArtist(artist.id));
                lstAlbum.albums.items.Add(album.items.FirstOrDefault());
            }
            return(lstAlbum.albums.items);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 开始播放前获取相关信息准备
        /// </summary>
        /// <param name="playingSongId"></param>
        /// <param name="songsItem"></param>
        /// <returns></returns>
        public static async Task <bool> PreparePlayingSong(long playingSongId, SongsItem songsItem = null)
        {
            if (songsItem == null)//需获取实例
            {
                MusicDetailRoot musicDetailRoot = await Task.Run(() => SongService.GetMusicDetail_Get(playingSongId.ToString()));

                if (musicDetailRoot == null || musicDetailRoot.songs == null || musicDetailRoot.songs.Count == 0)
                {
                    return(false);
                }
                songsItem = musicDetailRoot.songs.Last();
                //判断是否为喜欢歌曲
                if (MainPage.favoriteSongsRoot != null)
                {
                    if (MainPage.favoriteSongsRoot.ids.Find(p => p.Equals(songsItem.Id)) != 0)
                    {
                        songsItem.isFavorite = true;
                    }
                }
            }
            SongUrlRoot songUrlRoot = SongService.GetMusicUrl(songsItem.Id);

            if (songUrlRoot == null)
            {
                return(false);
            }
            PlayingSong        = songsItem;
            PlayingSongUrlRoot = songUrlRoot;
            var playingSong = PlayingService.PlayingSongList.FirstOrDefault(p => p.Id == PlayingService.PlayingSong.Id);

            if (playingSong == null)//将要播放的歌曲不在当前播放列表
            {
                PlayingSongList = new List <SongsItem>()
                {
                    PlayingSong
                };
                playingSong = PlayingSong;
            }
            if (PlayedSongId != null)
            {
                if (PlayingSongList != PlayedSongList)//不同一个播放列表需清空列表
                {
                    PlayedSongId.Clear();
                }
            }
            else
            {
                PlayedSongId = new List <long>();
            }
            PlayedSongId.Remove(playingSong.Id);   //删除重复的,避免死循环
            PlayedSongId.Add(playingSong.Id);
            if (PlayingService.PlayedSong != null) //听歌打卡
            {
                PlayingService.PlayDurationStopwatch.Stop();
                await Task.Run(() => SongService.MarkPlayDuration(PlayedSong.Id, PlayedListId, PlayDurationStopwatch.ElapsedMilliseconds / 1000));
            }

            //获取专辑
            PlayingAlbum = await Task.Run(() => AlbumService.GetAlbum(songsItem.al.id));

            if (PlayingAlbum == null)
            {
                return(false);
            }
            PlayingService.PlayingAlbumBitmapImage = await FileHelper.DownloadFile(new Uri(PlayingAlbum.album.picUrl + "?param=200y200"));

            if (PlayedSong != null && PlayedSongList != null)
            {
                PlayedSongList.FirstOrDefault(p => p.Id == PlayedSong.Id).IsPlaying = false;
            }
            PlayingSongList.FirstOrDefault(p => p.Id == PlayingSong.Id).IsPlaying = true;

            return(true);
        }