List <Object> prepareToNavigeteToPlaylitDetail(long id) { PlayListDetailRoot playListDetailRoot = PlaylistService.GetPlaylistDetail(id); if (playListDetailRoot == null || playListDetailRoot.playlist.trackIds.Count == 0) { return(null); } string ids = ""; for (int i = 0; i < playListDetailRoot.playlist.trackIds.Count; i++) { if (i != 0) { ids += ","; } ids += playListDetailRoot.playlist.trackIds[i].id; } MusicDetailRoot musicDetailRoot = SongService.GetMusicDetail_Post(ids); if (musicDetailRoot == null) { return(null); } List <Object> list = new List <object>(); list.Add(playListDetailRoot); list.Add(musicDetailRoot); return(list); }
protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); //将传过来的数据 类型转换一下 var list = (List <Object>)e.Parameter; playListDetailRoot = list.First() as PlayListDetailRoot; musicDetailRootSource = list.Last() as MusicDetailRoot; //if (playListDetailRoot.playlist.id == MainPage.PlayingListId) // return; if (playListDetailRoot.playlist.id == playListDetailID) { return; } playListDetailID = playListDetailRoot.playlist.id; LoadLayout(); }
//点击推荐歌单 private async void AdaptiveGridViewControl_ItemClick(object sender, ItemClickEventArgs e) { ProgressBar_loadRecomendList.Visibility = Visibility.Visible; Recommend recommend = e.ClickedItem as Recommend; if (recommend != null) { PlayListDetailRoot playListDetailRoot = await Task.Run(() => PlaylistService.GetPlaylistDetail(recommend.id)); if (playListDetailRoot == null || playListDetailRoot.playlist.trackIds.Count == 0) { ProgressBar_loadRecomendList.Visibility = Visibility.Collapsed; return; } string ids = ""; for (int i = 0; i < playListDetailRoot.playlist.trackIds.Count; i++) { if (i != 0) { ids += ","; } ids += playListDetailRoot.playlist.trackIds[i].id; } MusicDetailRoot musicDetailRoot = await Task.Run(() => SongService.GetMusicDetail_Post(ids)); if (musicDetailRoot == null) { ProgressBar_loadRecomendList.Visibility = Visibility.Collapsed; return; } //Frame frame = new Frame(); //PlayListDetai playListDetai = new PlayListDetai(playListDetailRoot, musicDetailRoot); //frame.Content = playListDetai; ProgressBar_loadRecomendList.Visibility = Visibility.Collapsed; List <Object> list = new List <object>(); list.Add(playListDetailRoot); list.Add(musicDetailRoot); Frame.Navigate(typeof(PlayListDetai), list); } }
private async void Pivot_SelectionChanged(object sender, SelectionChangedEventArgs e) { PivotItem pivotItem = (PivotItem)((Pivot)sender).SelectedItem; if (pivotItem.Tag.ToString() == "1")//日推 { if (ListBox_recommendMusic.ItemsSource != null) { return; } //string result = await MyClassManager.HttpClientGet(MyClassManager.apiUri + @"/recommend/songs"); ProgressBar_loadRecomendSongs.Visibility = Visibility.Visible; string result = await Task.Run(() => Http.Get(ConfigService.ApiUri + @"/recommend/songs")); if (result == null || result.Equals("")) { ProgressBar_loadRecomendSongs.Visibility = Visibility.Collapsed; return; } RecommendMusicsRoot recommendMusics = JsonConvert.DeserializeObject <RecommendMusicsRoot>(result); if (recommendMusics == null) { ProgressBar_loadRecomendSongs.Visibility = Visibility.Collapsed; return; } //判断是否为喜欢歌曲 if (MainPage.favoriteSongsRoot != null) { foreach (var temp in recommendMusics.data.dailySongs) { if (MainPage.favoriteSongsRoot.ids.Find(p => p.Equals(temp.Id)) != 0) { temp.isFavorite = true; } } } ProgressBar_loadRecomendSongs.Visibility = Visibility.Collapsed; ListBox_recommendMusic.ItemsSource = recommendMusics.data.dailySongs; } else if (pivotItem.Tag.ToString() == "2")//随机喜欢的50首 { if (MainPage.favoriteSongsRoot != null && MainPage.favoriteSongsRoot.ids.Count != 0 && MainPage.favoriteSongsRoot.songs == null) { MainPage.favoriteSongsRoot.songs = new List <SongsItem>(); string ids = ""; //for (int i = 0; i < MainPage.favoriteSongsRoot.ids.Count; i++) //{ // if (i != 0) // ids += ","; // ids += MainPage.favoriteSongsRoot.ids[i]; //} List <long> idsTemp = new List <long>(MainPage.favoriteSongsRoot.ids); //随机取50条数据 int totalCount = 50; //需要取得数据的数量 Random random = new Random(); while (idsTemp.Count > totalCount) //判断数据总数是否大于需要取得数据的数量 { int k = random.Next(0, idsTemp.Count); //取得大于等于0且小于数据总数的一个随机数 idsTemp.RemoveAt(k); //根据随机数移除一条数据 } for (int i = 0; i < idsTemp.Count; i++) { if (i != 0) { ids += ","; } ids += idsTemp[i]; } ProgressBar_loadRandomFavoriteSongs.Visibility = Visibility.Visible; MusicDetailRoot musicDetailRoot = await Task.Run(() => SongService.GetMusicDetail_Post(ids)); if (musicDetailRoot == null) { ProgressBar_loadRandomFavoriteSongs.Visibility = Visibility.Collapsed; return; } foreach (var temp in musicDetailRoot.songs) { temp.isFavorite = true; } ProgressBar_loadRandomFavoriteSongs.Visibility = Visibility.Collapsed; ListBox_myFavoriteSongs.ItemsSource = musicDetailRoot.songs; MainPage.favoriteSongsRoot.songs = musicDetailRoot.songs.ToList(); } } }
/// <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); }
List <Object> prepareToNavigeteToPlaylitDetail(long id) { PlayListDetailRoot playListDetailRoot = PlaylistService.GetPlaylistDetail(id); if (playListDetailRoot == null || playListDetailRoot.playlist.trackIds.Count == 0) { return(null); } string ids = ""; //for (int i = 0; i < playListDetailRoot.playlist.trackIds.Count; i++) //for (int i = 0; i < 1000; i++) //{ // if (i != 0) // ids += ","; // ids += playListDetailRoot.playlist.trackIds[i].id; //} MusicDetailRoot musicDetailRoot = new MusicDetailRoot(); musicDetailRoot.songs = new List <SongsItem>(); musicDetailRoot.privileges = new List <PrivilegesItem>(); for (int i = 0; i < playListDetailRoot.playlist.trackIds.Count; i += 1000)//最高单次1000个 { ids = ""; int j = i; if ((i + 1000) > playListDetailRoot.playlist.trackIds.Count)//剩下的不足1000 { for (; j < playListDetailRoot.playlist.trackIds.Count; j++) { if (j % 1000 != 0) { ids += ","; } ids += playListDetailRoot.playlist.trackIds[j].id; } } else//剩下的超过1000 { for (; j < i + 1000; j++) { if (j % 1000 != 0) { ids += ","; } ids += playListDetailRoot.playlist.trackIds[j].id; } } MusicDetailRoot musicDetailRootTemp = SongService.GetMusicDetail_Post(ids); if (musicDetailRootTemp != null && musicDetailRootTemp.songs != null && musicDetailRootTemp.privileges != null) { foreach (var temp in musicDetailRootTemp.songs) { musicDetailRoot.songs.Add(temp); } foreach (var temp in musicDetailRootTemp.privileges) { musicDetailRoot.privileges.Add(temp); } musicDetailRoot.code = musicDetailRootTemp.code; } } List <Object> list = new List <object>(); list.Add(playListDetailRoot); list.Add(musicDetailRoot); return(list); }