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); }
/// <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); }
/// <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); }
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); }
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); }
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); }
private async void Button_artists_Click(object sender, RoutedEventArgs e) { Button button = sender as Button; SongsItem songsItem = button.DataContext as SongsItem; if (songsItem.ar.Count == 1) { ProgressBar_loading.Visibility = Visibility.Visible; ArtistBaseDetailRoot artistBaseDetailRoot = await Task.Run(() => ArtistService.GetArtistBaseDetail(songsItem.ar.First().id)); ProgressBar_loading.Visibility = Visibility.Collapsed; if (artistBaseDetailRoot == null) { return; } Frame.Navigate(typeof(ArtistHome), artistBaseDetailRoot); } }
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(); }
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); }
public static async Task <bool> ChangePlayingSong(long playingSongId, SongsItem songsItem = null) { IsPlayingSong = true; PlayingSongId = playingSongId; PlayingSongList = PlayingSongList; bool b; if (songsItem == null) { b = await PreparePlayingSong(PlayingSongId); } else { b = await PreparePlayingSong(PlayingSongId, songsItem); } PlayingListToBaseObject(PlayingSongList); WhenPlayingSongChange(); return(b); }
async void ChangePlayBar(SongsItem song, BitmapImage bitmapImage, string musicName, string artistName, string albumName, int maximum, bool isStartPlaying = true) { Image_playingAlbum.Source = bitmapImage;//修改专辑图片 TextBlcok_musicName.Text = musicName; TextBlcok_artistName.Text = artistName; TextBlcok_albumName.Text = albumName; TextBlock_lengthTime.Text = await Task.Run(() => OtherHelper.GetDt(maximum)); if (isStartPlaying) { SymbolIcon_stopOrPlay.Symbol = Symbol.Pause; } if (song.isFavorite) { TextBlock_isOrnotFavorite.Text = "\xE00B"; } else { TextBlock_isOrnotFavorite.Text = "\xE006"; } }
public string RapidGenerateSonglist(string originSongID, string speed, string songID, string songName, bool randomFun = false) { string songTitle = songName; string artist = "Arcaea"; string bpm = "168"; double bpm_base = 168; int side = 1; string bg = "single_conflict"; int date = Euynac.Utility.Time.Get10TimeStamp();; string prsChartDesigner = "Arcaea"; string prsJacketDesigner = "lowrio"; int prsRating = 10; string ftrChartDesigner = "Arcaea"; string ftrJacketDesigner = "lowrio"; int ftrRating = 11; if (songsMap != null && songsMap.ContainsKey(originSongID)) { songTitle = songsMap[originSongID].title_localized.en; artist = songsMap[originSongID].artist; bpm = songsMap[originSongID].bpm; bpm_base = songsMap[originSongID].bpm_base; side = songsMap[originSongID].side; bg = songsMap[originSongID].bg; date = songsMap[originSongID].date; prsChartDesigner = songsMap[originSongID].difficulties[1].chartDesigner; prsJacketDesigner = songsMap[originSongID].difficulties[1].jacketDesigner; prsRating = songsMap[originSongID].difficulties[1].rating; ftrChartDesigner = songsMap[originSongID].difficulties[2].chartDesigner; ftrJacketDesigner = songsMap[originSongID].difficulties[2].jacketDesigner; ftrRating = songsMap[originSongID].difficulties[2].rating; } SongsItem root = new SongsItem(); root.id = songID; Title_localized title_Localized = new Title_localized(); title_Localized.en = this.isOfficial ? songTitle + speed : songName; root.title_localized = title_Localized; root.artist = artist; root.bpm = bpm; root.bpm_base = bpm_base; root.set = "base";//曲包id root.purchase = ""; root.audioPreview = 5000; root.audioPreviewEnd = 25000; root.side = side; //考虑随机 root.bg = bg; //这里可以考虑随机 root.date = date; List <DifficultiesItem> difficulties = new List <DifficultiesItem>(); DifficultiesItem past = new DifficultiesItem(); past.ratingClass = 0; past.chartDesigner = "Arcaea"; past.jacketDesigner = "lowrio"; past.rating = 1; past.plusFingers = false; DifficultiesItem present = new DifficultiesItem(); present.ratingClass = 1; present.chartDesigner = prsChartDesigner; present.jacketDesigner = prsJacketDesigner; present.rating = prsRating; present.plusFingers = false; DifficultiesItem future = new DifficultiesItem(); future.ratingClass = 2; future.chartDesigner = ftrChartDesigner; future.jacketDesigner = ftrJacketDesigner; future.rating = ftrRating; future.plusFingers = false; difficulties.Add(past); difficulties.Add(present); difficulties.Add(future); root.difficulties = difficulties; return(JsonConvert.SerializeObject(root)); }
/// <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); }
/// <summary> /// 更改播放歌曲入口函数 /// </summary> /// <param name="playingSongId"></param> /// <param name="songsItems"></param> /// <param name="songsItem"></param> /// <returns></returns> public static async Task <bool> ChangePlayingSong(long playingSongId, List <SongsItem> songsItems, SongsItem songsItem = null) { IsPlayingSong = true; PlayingSongId = playingSongId; PlayingSongList = songsItems; bool b; if (songsItem == null) { b = await PreparePlayingSong(PlayingSongId); } else { b = await PreparePlayingSong(PlayingSongId, songsItem); } if (!b) { NotifyPopup notifyPopup = new NotifyPopup("获取音乐失败"); notifyPopup.Show(); } else { PlayingListToBaseObject(PlayingSongList); WhenPlayingSongChange(); } return(b); }