Ejemplo n.º 1
0
 /// <summary>
 /// 获取下载链接中的vkey
 /// </summary>
 /// <param name="songMid"></param>
 /// <param name="fileName"></param>
 /// <returns></returns>
 private async Task <QqMusicVkeyModel> GetVkeyInfo(string songMid, string fileName)
 {
     return(await Task.Run(async() =>
     {
         var url = new Uri(string.Format(_fcgUrl, songMid, fileName));
         var vkeyInfo = await _requests.StartAsync(url);
         var leftQuotoIndex = vkeyInfo.IndexOf("(", StringComparison.Ordinal);
         vkeyInfo = vkeyInfo.Substring(leftQuotoIndex + 1, vkeyInfo.Length - leftQuotoIndex - 2);
         var models = JSON.Deserialize <QqMusicVkeyModel>(vkeyInfo);
         return models;
     }));
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 根据关键字进行搜索
        /// </summary>
        /// <param name="keyword">音乐名或者歌手</param>
        /// <param name="page">页码</param>
        /// <returns></returns>
        public async Task <string> SearchAsync(string keyword, int page = 1)
        {
            return(await Task.Run(async() =>
            {
                try
                {
                    OnBeforeSearch?.Invoke();

                    var songAboutInfo = await _requests.StartAsync(new Uri(string.Format(SearchUrl, page, keyword)));

                    OnAfterSearch?.Invoke();
                    return songAboutInfo;
                }
                catch (Exception e)
                {
                    OnSearchError?.Invoke(e);
                    return "";
                }
            }));
        }