private async void SingerHotSongList_CurrentItemChanged(MediaPlaybackList sender, CurrentMediaPlaybackItemChangedEventArgs args) { uint CurrentIndex = sender.CurrentItemIndex; if (CurrentIndex == 4294967295) { return; } await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() => { if (MediaControl.MediaPlayer.Source == MediaPlayList.SingerHotSongList && MediaPlayList.HotSongBackup.Count > 0) { SearchSingleMusic music = MediaPlayList.HotSongBackup[Convert.ToInt32(CurrentIndex)]; var SongSearchResult = await NeteaseMusicAPI.GetInstance().SearchAsync <SingleMusicSearchResult>(music.MusicName, 5, 0, NeteaseMusicAPI.SearchType.Song); foreach (var Song in SongSearchResult.Result.Songs.Where(Song => Song.Name == music.MusicName && Song.Al.Name == music.Album).Select(Song => Song)) { var bitmap = new BitmapImage(); PicturePlaying.Source = bitmap; bitmap.UriSource = new Uri(Song.Al.PicUrl); break; } MediaItemDisplayProperties Props = args.NewItem.GetDisplayProperties(); Props.Type = Windows.Media.MediaPlaybackType.Music; Props.MusicProperties.Title = music.MusicName; Props.MusicProperties.Artist = music.Album; args.NewItem.ApplyDisplayProperties(Props); } }); }
public void GetUserBriefInfoTest() { NeteaseMusicAPI api = new NeteaseMusicAPI(); var result = api.GetUserBriefInfo(TestNeteaseID); Assert.AreNotEqual(result, null); }
private async void MV_PointerPressed(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e) { MusicListControl.SelectedItem = ((TextBlock)sender).DataContext; var Result = await NeteaseMusicAPI.GetInstance().GetMVAsync((int)FavouriteMusicCollection[MusicListControl.SelectedIndex].MVid); MusicPage.ThisPage.MusicNav.Navigate(typeof(MusicMV), Result.Data, new DrillInNavigationTransitionInfo()); }
public static IList <Album_info> Search_Album(long id, int i = 30) { var api = new NeteaseMusicAPI(); var apires = api.Album(id); List <Album_info> musics = new List <Album_info>(); var name = apires.Album.Name; var album_username = apires.Album.Artists[0].Name; var img = apires.Album.PicUrl; int a = 0; foreach (var song in apires.Songs) { if (a < i) { Album_info music = new Album_info(); music.album_username = album_username; music.dec = apires.Album.Description.ToString(); music.music_name = string.Format("{0}", song.Name); music.musci_url = api.GetSongsUrl(new long[] { song.Id }).Data[0].Url; // music.music_alname = song.Al.Name; music.id = song.Id; music.name = name; music.img = img; music.singer = song.Ar[0].Name; musics.Add(music); a++; } else { break; } } return(musics); }
private async void MVSuggestControl_ItemClick(object sender, ItemClickEventArgs e) { var Result = await NeteaseMusicAPI.GetInstance().GetMVAsync((e.ClickedItem as MVSuggestion).MovieID); MVName.Text = Result.Data.Name; if (Result.Data.Desc == null) { MVIntro.Text = "无简介"; } else { MVIntro.Text = Result.Data.Desc == "" ? "无简介" : Result.Data.Desc; } //优先选择720P视频,若不支持则依次递减清晰度 if (Result.Data.Brs.The720 != null) { MovieUri = new Uri(Result.Data.Brs.The720); MVControl.Source = MediaSource.CreateFromUri(MovieUri); } else if (Result.Data.Brs.The480 != null) { MovieUri = new Uri(Result.Data.Brs.The480); MVControl.Source = MediaSource.CreateFromUri(MovieUri); } else if (Result.Data.Brs.The240 != null) { MovieUri = new Uri(Result.Data.Brs.The240); MVControl.Source = MediaSource.CreateFromUri(MovieUri); } }
private void PlayUrlCommandExecute() { NeteaseMusicAPI api = new NeteaseMusicAPI(); var apiresult = api.Search(MusicName); var songList = ""; foreach (var song in apiresult.Result.Songs) { songList += string.Format("{0} - {1} ({2})\r\n,", song.Name, song.Ar[0].Name, api.GetSongsUrl(new long[] { song.Id }).Data[0].Url); } }
private async void PlayAll_Click(object sender, RoutedEventArgs e) { bool ExistCannotPlay = false; if (MediaPlayList.AlbumSongList.Items.Count != 0) { MediaPlayList.AlbumSongBackup.Clear(); MediaPlayList.AlbumSongList.Items.Clear(); } MusicPage.ThisPage.MediaControl.AutoPlay = true; MusicPage.ThisPage.MediaControl.MediaPlayer.Source = MediaPlayList.AlbumSongList; foreach (SearchSingleMusic item in AlbumCollection) { MediaPlayList.AlbumSongBackup.Add(new SearchSingleMusic(item.MusicName, item.Artist, item.Album, item.Duration, item.SongID[0], item.ImageUrl, item.MVid)); string uri = (await NeteaseMusicAPI.GetInstance().GetSongsUrlAsync(item.SongID)).Data[0].Url; if (uri == null) { ExistCannotPlay = true; continue; } //采用延迟加载技术,仅当该歌曲处于即将播放状态时才调用Binder_Binding加载资源 MediaBinder binder = new MediaBinder { Token = uri }; binder.Binding += Binder_Binding; MediaPlaybackItem Item = new MediaPlaybackItem(MediaSource.CreateFromMediaBinder(binder)); //与系统的SMTC集成 MediaItemDisplayProperties Props = Item.GetDisplayProperties(); Props.Type = Windows.Media.MediaPlaybackType.Music; Props.MusicProperties.Title = item.MusicName; Props.MusicProperties.Artist = item.Album; Item.ApplyDisplayProperties(Props); MediaPlayList.AlbumSongList.Items.Add(Item); } if (ExistCannotPlay) { ExistCannotPlay = false; ContentDialog dialog = new ContentDialog { Title = "抱歉", Content = "部分歌曲暂时无法播放,已自动忽略", CloseButtonText = "确定", Background = Application.Current.Resources["DialogAcrylicBrush"] as Brush }; await dialog.ShowAsync(); } }
public MainForm() { InitializeComponent(); comboBox_output_name.SelectedIndex = 0; comboBox_output_encode.SelectedIndex = 0; comboBox_diglossia_lrc.SelectedIndex = 0; comboBox_search_type.SelectedIndex = 0; comboBox_dot.SelectedIndex = 0; api = new NeteaseMusicAPI(); }
public void SendRequestTest() { NeteaseMusicAPI api = new NeteaseMusicAPI(); var result = api.SendData("http://music.163.com/weapi/v1/resource/comments/A_PL_0_740840138", "{\"rid\":\"A_PL_0_740840138\",\"offset\":\"0\",\"total\":\"true\",\"limit\":\"20\",\"csrf_token\":\"\"}", "viK2GeGEcwnIPOzB"); Assert.IsTrue(result?.IndexOf("isMusician") != -1); result = api.SendData("http://music.163.com/weapi/v1/resource/comments/A_PL_0_740840138", "{\"rid\":\"A_PL_0_740840138\",\"offset\":\"0\",\"total\":\"true\",\"limit\":\"20\",\"csrf_token\":\"\"}"); Assert.IsTrue(result?.IndexOf("isMusician") != -1); }
private async void MVGridView_ItemClick(object sender, ItemClickEventArgs e) { LoadingControl.IsLoading = true; var Result = await NeteaseMusicAPI.GetInstance().GetMVAsync((e.ClickedItem as SingerMV).MovieID); await Task.Delay(500); LoadingControl.IsLoading = false; MusicPage.ThisPage.MusicNav.Navigate(typeof(MusicMV), Result.Data, new SlideNavigationTransitionInfo() { Effect = SlideNavigationTransitionEffect.FromRight }); }
private async void MV_PointerPressed(object sender, PointerRoutedEventArgs e) { LoadingControl.IsLoading = true; AlbumList.SelectedItem = ((TextBlock)sender).DataContext; var Result = await NeteaseMusicAPI.GetInstance().GetMVAsync((int)AlbumCollection[AlbumList.SelectedIndex].MVid); LoadingControl.IsLoading = false; await Task.Delay(500); MusicPage.ThisPage.MusicNav.Navigate(typeof(MusicMV), Result.Data, new SlideNavigationTransitionInfo() { Effect = SlideNavigationTransitionEffect.FromRight }); }
public void Init() { var count = 0; var api = new NeteaseMusicAPI(); var request = api.Search(SearchName); playList.Clear(); foreach (var song in request.Result.Songs) { count++; if (count < 20) { playList.Add(new MusicInfo(api.GetSongsUrl(new long[] { song.Id }).Data[0].Url, song.Name, song.Ar[0].Name)); } } }
public void GetUserInfoTest() { NeteaseMusicAPI api = new NeteaseMusicAPI(); var result = api.GetUserPlaylists(TestNeteaseID); Assert.AreNotEqual(result, null); result = api.GetUserEvents(TestNeteaseID); Assert.AreNotEqual(result, null); result = api.GetUserFollowers(TestNeteaseID); Assert.AreNotEqual(result, null); result = api.GetUserFollows(TestNeteaseID); Assert.AreNotEqual(result, null); result = api.GetUserPlayRecords(TestNeteaseID); Assert.AreNotEqual(result, null); result = api.GetAlbumComments(TestAlbumID); Assert.AreNotEqual(result, null); }
private async void GridViewControl_ItemClick(object sender, ItemClickEventArgs e) { LoadingControl.IsLoading = true; var Result = await NeteaseMusicAPI.GetInstance().GetAlbumAsync((e.ClickedItem as SingerAlbum).ID); LoadingControl.IsLoading = false; await Task.Delay(500); Image image = ((GridViewControl.ContainerFromItem(e.ClickedItem) as GridViewItem).ContentTemplateRoot as FrameworkElement).FindName("AlbumImage") as Image; ConnectedAnimationService.GetForCurrentView().PrepareToAnimate("ToAlbumAnimation", image).Configuration = new BasicConnectedAnimationConfiguration(); MusicPage.ThisPage.MusicNav.Navigate(typeof(MusicAlbum), Result, new SlideNavigationTransitionInfo() { Effect = SlideNavigationTransitionEffect.FromRight }); }
public void HttpPostTest() { NeteaseMusicAPI api = new NeteaseMusicAPI(); var mi = typeof(NeteaseMusicAPI).GetMethod("HttpPost", BindingFlags.NonPublic | BindingFlags.Instance); var CallFunc = (Func <string, FormUrlEncodedContent, string>)Delegate.CreateDelegate( typeof(Func <string, FormUrlEncodedContent, string>), api, mi); //Text Response Request { var form = new FormUrlEncodedContent(new Dictionary <string, string> { { "params", "T9tlab0mBb/kSLfGU72O8fS0DismJUSO0rGS7t0I4foDPGWTLkAFy61fvw7ddoZIXvcsAypCrfvVvsZtQqi32UiQtIWVTre7mgJnTzPXwo2NW8ctoQIvH2gZmVYBeGiqWsfh/+9ct4ZzDds56q3ETMPWPbjL40UF0o29e0tChzy+72VAbzbxrFfY9F0OfrMBYx5y+JhigZEbmQv9BPDTq9DD+CmU+Oaek2EAz6QfvA52Gw0WCr/v45x7jro8f+UgocazZeMF0dbWia175e4qHD4ALt8smEpR0S3Ipbk5zA+MBe9EHijVHzq7RV5+ib3siJoq49804fAeqlR8zm225nqJ6X/HyTsUHNzh+Pudsh0=" }, { "encSecKey", "6437513d03b418ceadcaf6f25f87d88ab5e228b45536bf46b98f2355376bed1bc792c3b2e36496035da1fb7a8ffc44cd87038a97e546445c1e6ce76b9e616f354301c958d7cb4ed65c34cea6f03f97c06d2ef57b65ba7fd3afee3316b5b41e3560f8a93cfb9539ccecd536137226eb025eb8c528e684133eed2c1787e5dd26bf" } }); var result = CallFunc("http://music.163.com/weapi/feedback/weblog", form); Assert.AreEqual("{\"code\":200}", result); } /* * //GZip Response Request * { * var form = new FormUrlEncodedContent(new Dictionary<string, string> * { * { * "params", * "sjOijmHnXA/HOpUj9YcfcfD50GETwiGotS6v+I6+js1tT+9Y1/700Xw/MliMEg2P" * }, * { * "encSecKey", * "c3aca22b9f1121390d34ea415914c59c1fa7a523a94a4452a77d6e3d320626e451afe402b2fa28fc3232d8fe0920251763d03ddd2b63ef4d569eed2460a93d987519db02ade38effe49c5fde9d7db186c28056ee9d305db73a5856d6eadc99e86b46df164ae14461b5e40e7c34c675de1071b34d0bf86606bf3e3ac4dafcba63" * } * }); * var result = CallFunc("http://music.163.com/weapi/discovery/recommend/resource", form); * Assert.AreEqual("{\"msg\":null,\"code\":301}", result); * } */ }
public static List <Music_info> Search(string musicname, int i = 10) { var api = new NeteaseMusicAPI(); var apires = api.Search(musicname, i); var name = ""; List <Music_info> musics = new List <Music_info>(); name = apires.Result.Songs[0].Ar[0].Name; foreach (var song in apires.Result.Songs) { Music_info music = new Music_info(); music.music_name = string.Format("{0}", song.Name); music.music_alname = song.Ar[0].Name; music.musci_url = api.GetSongsUrl(new long[] { song.Id }).Data[0].Url; music.music_picurl = song.Al.PicUrl; music.album = song.Al.Name; music.id = song.Id; music.albumid = song.Al.Id; musics.Add(music); } return(musics); }
static public string MusicJson(string musicid) { var api = new NeteaseMusicAPI(); var apires = api.Search(musicid.ToString(), 1); IList <Music_info> muscis = new List <Music_info>(); var art = new ArtistResult(); musicplay music = new musicplay(); i++; music.id = i; music.song = apires.Result.Songs[0].Name; music.singer.name = apires.Result.Songs[0].Ar[0].Name; music.time = apires.Result.Songs[0].PublishTime.ToString(); music.words = api.Lyric(apires.Result.Songs[0].Id).Lrc.Lyric; music.src = api.GetSongsUrl(new long[] { apires.Result.Songs[0].Id }).Data[0].Url; music.img = apires.Result.Songs[0].Al.PicUrl; music.album = apires.Result.Songs[0].Al.Name; var a = api.Lyric(apires.Result.Songs[0].Id); string output = JsonConvert.SerializeObject(music); return(output); }
private async void SymbolIcon_PointerPressed(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e) { HotSongList.SelectedItem = ((SymbolIcon)sender).DataContext; var SongURL = (await NeteaseMusicAPI.GetInstance().GetSongsUrlAsync(HotSongCollection[HotSongList.SelectedIndex].SongID)).Data[0].Url; if (SongURL == null) { ContentDialog dialog = new ContentDialog { Title = "抱歉", Content = "当前歌曲暂时无法播放", CloseButtonText = "确定", Background = Application.Current.Resources["DialogAcrylicBrush"] as Brush }; await dialog.ShowAsync(); return; } MusicPage.ThisPage.MediaControl.MediaPlayer.Source = MediaSource.CreateFromUri(new Uri(SongURL)); var music = HotSongCollection[HotSongList.SelectedIndex]; var SongSearchResult = await NeteaseMusicAPI.GetInstance().SearchAsync <SingleMusicSearchResult>(music.MusicName, 5, 0, NeteaseMusicAPI.SearchType.Song); foreach (var Song in SongSearchResult.Result.Songs.Where(Song => Song.Name == music.MusicName && Song.Al.Name == music.Album).Select(Song => Song)) { var bitmap = new BitmapImage(); MusicPage.ThisPage.PicturePlaying.Source = bitmap; bitmap.UriSource = new Uri(Song.Al.PicUrl); MusicSearch.ForDetail_ImageURL = Song.Al.PicUrl; break; } MusicSearch.ForDetail_ID = HotSongCollection[HotSongList.SelectedIndex].SongID[0]; MusicSearch.ForDetail_Name = HotSongCollection[HotSongList.SelectedIndex].MusicName; MusicPage.ThisPage.MediaControl.MediaPlayer.Play(); }
/// <summary> /// 获取网易云音乐的歌曲Id集合,并返回到SercherResultList集合中 /// </summary> /// <param name="SercherKeys">通过歌曲名在网络上搜索Id</param> /// <param name="Id">如果已经拥有歌曲ID</param> /// <returns></returns> private void GetMusicIds(string SercherKeys, string Id = null) { var CloudMusicApi = new NeteaseMusicAPI(); var res = CloudMusicApi.Search(SercherKeys, type: NeteaseMusicAPI.SearchType.Song).Result; if (res.Songs == null) { return; } var songs = res.Songs.Select(x => { return(new NetCloudLrcInfoz { Artist = string.Join(",", x.Ar.Select(y => y.Name)), Id = x.Id.ToString(), Title = x.Name, LrcUri = GetLrcUri(x.Id.ToString()) }); }); foreach (var i in songs) { SercherResultList.Add(i); } }
NetCloudMusicSource() { neteaseMusicAPI = new NeteaseMusicAPI(); }
private async void FontIcon_PointerPressed(object sender, PointerRoutedEventArgs e) { FontIcon FI = sender as FontIcon; AlbumList.SelectedItem = ((FontIcon)sender).DataContext; SearchSingleMusic SSM = AlbumCollection[AlbumList.SelectedIndex]; if (((SolidColorBrush)FI.Foreground).Color == Colors.White) { string MusicURL = (await NeteaseMusicAPI.GetInstance().GetSongsUrlAsync(AlbumCollection[AlbumList.SelectedIndex].SongID)).Data[0].Url; if (MusicURL == null) { ContentDialog dialog = new ContentDialog { Title = "抱歉", Content = "当前歌曲暂时无法播放", CloseButtonText = "确定", Background = Application.Current.Resources["DialogAcrylicBrush"] as Brush }; await dialog.ShowAsync(); return; } FI.Glyph = "\uEB52"; FI.Foreground = new SolidColorBrush(Colors.Red); var song = await NeteaseMusicAPI.GetInstance().SearchAsync <SingleMusicSearchResult>(SSM.MusicName, 5, 0, NeteaseMusicAPI.SearchType.Song); string ImgURL = ""; foreach (var Song in song.Result.Songs.Where(Song => Song.Name == SSM.MusicName && Song.Al.Name == SSM.Album).Select(Song => Song)) { ImgURL = Song.Al.PicUrl; break; } MusicList.ThisPage.FavouriteMusicCollection.Add(new PlayList(SSM.MusicName, SSM.Artist, SSM.Album, SSM.Duration, ImgURL, SSM.SongID[0], SSM.MVid)); MediaPlaybackItem Item = new MediaPlaybackItem(MediaSource.CreateFromUri(new Uri(MusicURL))); MediaItemDisplayProperties Props = Item.GetDisplayProperties(); Props.Type = Windows.Media.MediaPlaybackType.Music; Props.MusicProperties.Title = SSM.MusicName; Props.MusicProperties.Artist = SSM.Artist; Item.ApplyDisplayProperties(Props); MediaPlayList.FavouriteSongList.Items.Add(Item); await SQLite.GetInstance().SetMusicDataAsync(SSM.MusicName, SSM.Artist, SSM.Album, SSM.Duration, ImgURL, SSM.SongID[0], SSM.MVid); } else { FI.Glyph = "\uEB51"; FI.Foreground = new SolidColorBrush(Colors.White); for (int i = 0; i < MusicList.ThisPage.FavouriteMusicCollection.Count; i++) { if (MusicList.ThisPage.FavouriteMusicCollection[i].SongID == SSM.SongID[0]) { await SQLite.GetInstance().DeleteMusicAsync(MusicList.ThisPage.FavouriteMusicCollection[i]); MusicList.ThisPage.FavouriteMusicCollection.RemoveAt(i); MediaPlayList.FavouriteSongList.Items.RemoveAt(i); break; } } } }
public void GetPlaylistTest() { NeteaseMusicAPI api = new NeteaseMusicAPI(); var result = api.GetPlaylistDetail(TestNeteaseID); }
private async void MusicSearch_SingerPage_Loaded(object sender, RoutedEventArgs e) { if (IsSame) { IsSame = false; Locker.Set(); return; } if (PivotControl.SelectedIndex != 0) { PivotControl.SelectedIndex = 0; } HotSongCollection = new ObservableCollection <SearchSingleMusic>(); AlbumCollection = new ObservableCollection <SingerAlbum>(); MVCollection = new ObservableCollection <SingerMV>(); HotSongList.ItemsSource = HotSongCollection; GridViewControl.ItemsSource = AlbumCollection; MVGridView.ItemsSource = MVCollection; foreach (var Song in Artist.HotSongs) { TimeSpan Duration = TimeSpan.FromMilliseconds(Song.Dt); if (Song.Ar.Count == 1) { HotSongCollection.Add(new SearchSingleMusic(Song.Name, Song.Ar[0].Name, Song.Al.Name, string.Format("{0:D2}:{1:D2}", Duration.Minutes, Duration.Seconds), Song.Id, Song.Al.Pic.ToString(), Song.Mv)); } else if (Song.Ar.Count > 1) { string CombineName = string.Empty; foreach (var names in Song.Ar) { CombineName = CombineName + names.Name + "/"; } CombineName = CombineName.Remove(CombineName.Length - 1); HotSongCollection.Add(new SearchSingleMusic(Song.Name, CombineName, Song.Al.Name, string.Format("{0:D2}:{1:D2}", Duration.Minutes, Duration.Seconds), Song.Id, Song.Al.Pic.ToString(), Song.Mv)); } else { HotSongCollection.Add(new SearchSingleMusic(Song.Name, "Unknown", Song.Al.Name, string.Format("{0:D2}:{1:D2}", Duration.Minutes, Duration.Seconds), Song.Id, Song.Al.Pic.ToString(), Song.Mv)); } } AlbumSearchResult Result = await NeteaseMusicAPI.GetInstance().SearchAsync <AlbumSearchResult>(Artist.Artist.Name, 30, 0, NeteaseMusicAPI.SearchType.Album); if (Result.result.albums != null) { foreach (var item in Result.result.albums) { AlbumCollection.Add(new SingerAlbum(item.name, item.id, new Uri(item.picUrl))); } } foreach (var item in HotSongCollection) { if (CancelToken.IsCancellationRequested) { break; } if (item.MVExists) { var MVResult = await NeteaseMusicAPI.GetInstance().GetMVAsync((int)item.MVid); if (MVResult.Data == null) { continue; } MVCollection.Add(new SingerMV(MVResult.Data.Name, MVResult.Data.BriefDesc, (int)item.MVid, new Uri(MVResult.Data.Cover))); } } Locker.Set(); }