千千静听的歌词服务器地址是哪个?

千千静听的歌词服务器地址是哪个?,第1张

最近想做一个音乐播放器,播放器需要显示歌词,这就需要到网上下载歌词。花了两个晚上搞了一个歌词下载类,通过歌名和歌手算出响应代码到千千静听服务器下载

具体流程如下:

1、通过歌名 Title 和 歌手 Artist ,计算出歌词下载列表地址

先把Title和Artist转换为十六进制,带入下面服务器地址

歌词Id获取地址:http://ttlrcct2.qianqian.com/dll/lyricsvr.dll?sh?Artist={0}&Title={1}&Flags=0"

然后连接到地址,得到一个Xml文件,可以得到歌词的下载Id

2、通过 Id 和 Title 和 Artist 算出相应的Code,具体看代码(参考自网上)

歌词下载服务器地址:http://ttlrcct2.qianqian.com/dll/lyricsvr.dll?dl?Id={0}&Code={1}

下面是代码

定义两个类:LyricsHelper(辅助获取歌词Id)LrcInfo(歌词下载相应信息)

public class LyricsHelper

{

//歌词Id获取地址

private static readonly string SearchPath = "http://ttlrcct2.qianqian.com/dll/lyricsvr.dll?sh?Artist={0}&Title={1}&Flags=0"

//根据artist和title获取歌词信息

public static LrcInfo[] GetLrcList(string artist, string title, string filepath)

{

string artistHex = GetHexString(artist, Encoding.Unicode)

string titleHex = GetHexString(title, Encoding.Unicode)

string resultUrl = string.Format(SearchPath, artistHex, titleHex)

XmlDocument doc = new XmlDocument()

try

{

doc.Load(resultUrl)

XmlNodeList nodelist = doc.SelectNodes("/result/lrc")

List<LrcInfo>lrclist = new List<LrcInfo>()

foreach (XmlNode node in nodelist)

{

XmlElement element = (XmlElement)node

string artistItem = element.GetAttribute("artist")

string titleItem = element.GetAttribute("title")

string idItem = element.GetAttribute("id")

lrclist.Add(new LrcInfo(idItem, titleItem, artistItem, filepath))

}

return lrclist.ToArray()

}

catch (XmlException)

{

return null

}

}

//把字符串转换为十六进制

public static string GetHexString(string str, Encoding encoding)

{

StringBuilder sb = new StringBuilder()

byte[] bytes = encoding.GetBytes(str)

foreach (byte b in bytes)

{

sb.Append(b.ToString("X").PadLeft(2, '0'))

}

return sb.ToString()

}

}

public class LrcInfo

{

//歌词下载地址

private static readonly string DownloadPath = "http://ttlrcct2.qianqian.com/dll/lyricsvr.dll?dl?Id={0}&Code={1}"

public string FilePath { getset}

public string Id { getset}

public string Artist { getset}

public string Title { getset}

public string LrcUri { getset}

public LrcInfo(string id, string title, string artist, string filepath)

{

this.FilePath = filepath

this.Id = id.Trim()

this.Title = title

this.Artist = artist

//算出歌词的下载地址

this.LrcUri = string.Format(DownloadPath, Id, CreateQianQianCode())

}

public bool DownloadLrc()

{

string file = FilePath

string directory = Path.GetDirectoryName(file) + "\\Lrc\\"

if (!Directory.Exists(directory))

{

Directory.CreateDirectory(directory)

}

string filepath = directory + Path.GetFileNameWithoutExtension(file) + ".lrc"

WebRequest request = WebRequest.Create(LrcUri)

StringBuilder sb = new StringBuilder()

try

{

using (StreamReader sr = new StreamReader(request.GetResponse().GetResponseStream(), Encoding.UTF8))

{

using (StreamWriter sw = new StreamWriter(filepath, false, Encoding.UTF8))

{

sw.Write(sr.ReadToEnd())

}

}

return true

}

catch (WebException)

{

}

return false

}

private string CreateQianQianCode()

{

int lrcId = Convert.ToInt32(Id)

string qqHexStr = LyricsHelper.GetHexString(Artist + Title, Encoding.UTF8)

int length = qqHexStr.Length / 2

int[] song = new int[length]

for (int i = 0i <lengthi++)

{

song[i] = int.Parse(qqHexStr.Substring(i * 2, 2), System.Globalization.NumberStyles.HexNumber)

}

int t1 = 0, t2 = 0, t3 = 0

t1 = (lrcId &0x0000FF00) >>8

if ((lrcId &0x00FF0000) == 0)

{

t3 = 0x000000FF &~t1

}

else

{

t3 = 0x000000FF &((lrcId &0x00FF0000) >>16)

}

t3 = t3 | ((0x000000FF &lrcId) <<8)

t3 = t3 <<8

t3 = t3 | (0x000000FF &t1)

t3 = t3 <<8

if ((lrcId &0xFF000000) == 0)

{

t3 = t3 | (0x000000FF &(~lrcId))

}

else

{

t3 = t3 | (0x000000FF &(lrcId >>24))

}

int j = length - 1

while (j >= 0)

{

int c = song[j]

if (c >= 0x80) c = c - 0x100

t1 = (int)((c + t2) &0x00000000FFFFFFFF)

t2 = (int)((t2 <<(j % 2 + 4)) &0x00000000FFFFFFFF)

t2 = (int)((t1 + t2) &0x00000000FFFFFFFF)

j -= 1

}

j = 0

t1 = 0

while (j <= length - 1)

{

int c = song[j]

if (c >= 128) c = c - 256

int t4 = (int)((c + t1) &0x00000000FFFFFFFF)

t1 = (int)((t1 <<(j % 2 + 3)) &0x00000000FFFFFFFF)

t1 = (int)((t1 + t4) &0x00000000FFFFFFFF)

j += 1

}

int t5 = (int)Conv(t2 ^ t3)

t5 = (int)Conv(t5 + (t1 | lrcId))

t5 = (int)Conv(t5 * (t1 | t3))

t5 = (int)Conv(t5 * (t2 ^ lrcId))

long t6 = (long)t5

if (t6 >2147483648)

t5 = (int)(t6 - 4294967296)

return t5.ToString()

}

private long Conv(int i)

{

long r = i % 4294967296

if (i >= 0 &&r >2147483648)

r = r - 4294967296

if (i <0 &&r <2147483648)

r = r + 4294967296

return r

}

}

你好: URL地址亦是音乐文件在互联网上的实际地址链接,音乐文件必须是存储于网络服务器中,不是本地的音乐,这里请注意,可以被新浪博客播放器添加播放的音乐链接,其必须为以“http://”开头并以“.mp3”结尾的链接地址,链接类型为“http://.../.../***.mp3”形式的链接,除此以外任何类型的链接均为无效链接,如本地音乐文件地址,链接类型为“C:/...../.../***.mp3”,如此链接音乐将无法被添加。 如何得到音乐真正的地址链接,可以用如下方法,以新浪音乐搜索为例,搜索到音乐后,为了保证音乐的流畅播放,选择其中一首连接速度较快的链接,点击后弹出歌曲信息框,点击其中的“复制歌曲地址”将音乐地址复制到剪切板。 这好时将复制的链接粘贴进播放器音乐列表中的“音乐播放URL”栏中,点击右侧“保存”即可。其他歌曲可以用以上方法一次添加。

百度知道

iphone手机播放视频在此服务器找不到所请求的...展开

匿名用户

可能的原因(仅供参考)有:一、网络设置的问题这种原因比较多出现在需要手动指定IP、网关、DNS服务器联网方式下,及使用代理服务器上网的。仔细检查计算机的网络设置。二、DNS服务器的问题当IE无法浏览网页时,可先尝试用IP地址来访问,如果可以访问,那么应该是DNS的问题,造成DNS的问题可能是连网时获取DNS出错或DNS服务器本身问题,这时你可以手动指定DNS服务(地址可以是你当地ISP提供的DNS服务器地址,也可以用其它地方可正常使用DNS服务器地址。)在网络的属性里进行,(控制面板—网络和拔号连接—本地连接—右键属性—TCP/IP协议—属性—使用下面的DNS服务器地址)。不同的ISP有不同的DNS地址。有时候则是路由器或网卡的问题,无法与ISP的DNS服务连接,这种情况的话,可把路由器关一会再开,或者重新设置路由器。还有一种可能,是本地DNS缓存出现了问题。为了提高网站访问速度,系统会自动将已经访问过并获取IP地址的网站存入本地的DNS缓存里,一旦再对这个网站进行访问,则不再通过DNS服务器而直接从本地DNS缓存取出该网站的IP地址进行访问。所以,如果本地DNS缓存出现了问题,会导致网站无法访问。可以在“运行”中执行ipconfig/flushdns来重建本地DNS缓存。三、IE浏览器本身的问题当IE浏览器本身出现故障时,自然会影响到浏览了;或者IE被恶意修改破坏也会导致无法浏览网页。这时可以尝试用“黄山IE修复专家”来修复(建议到安全模式下修复),或者重新IE(如重装IE遇到无法重新的问题,可参考:附一解决无法重装IE)四、网络防火墙的问题如果网络防火墙设置不当,如安全等级过高、不小心把IE放进了阻止访问列表、错误的防火墙策略等,可尝试检查策略、降低防火墙安全等级或直接关掉试试是否恢复正常。五、网络协议和网卡驱动的问题IE无法浏览,有可能是网络协议(特别是TCP/IP协议)或网卡驱动损坏导致,可尝试重新网卡驱动和网络协议。六、HOSTS文件的问题HOSTS文件被修改,也会导致浏览的不正常,解决方法当然是清空HOSTS文件里的内容。七、系统文件的问题当与IE有关的系统文件被更换或损坏时,会影响到IE正常的使用,这时可使用SFC命令修复一下,WIN98系统可在“运行”中执行SFC,然后执行扫描;WIN2000/XP/2003则在“运行”中执行sfc/scannow尝试修复。其中当只有IE无法浏览网页,而 可以上时,则往往由于winsock.dll、wsock32.dll或wsock.vxd(VXD只在WIN9X系统下存在)等文件损坏或丢失造成,Winsock是构成TCP/IP协议的重要组成部分,一般要重装TCP/IP协议。但xp开始集成TCP/IP协议,所以不能像98那样简单卸载后重装,可以使用netsh命令重置TCP/IP协议,使其恢复到初次安装操作系统时的状态。具体操作如下:点击“开始运行”,在运行对话框中输入“CMD”命令,弹出命令提示符窗口,接着输入“netshintipresetc:\resetlog.txt”命令后会回车即可,其中“resetlog.txt”文件是用来记录命令执行结果的日志文件,该参数选项必须指定,这里指定的日志文件的完整路径是“c:\resetlog.txt”。执行此命令后的结果与删除并重新安装TCP/IP协议的效果相同。小提示:netsh命令是一个基于命令行的脚本编写工具,你可以使用此命令配置和监视Windows系统,此外它还提供了交互式网络外壳程序接口,netsh命令的使用格式请参看帮助文件(在令提示符窗口中输入“netsh/?”即可)。第二个解决方法是修复以上文件,WIN9X使用SFC重新提取以上文件,WIN2000/XP/2003使用sfc/scannow命令修复文件,当用sfc/scannow无法修复时,可试试网上发布的专门针对这个问题的修复工具WinSockFix,可以在网上搜索下载。八、杀毒软件的实时监控问题这倒不是经常见,但有时的确跟实时监控有关,因为现在杀毒软件的实时监控都添加了对网页内容的监控。举一个实例:KV2005就会在个别的机子上会导致IE无法浏览网页(不少朋友遇到过),其具体表现是只要打开网页监控,一开机上网大约20来分钟后,IE就会无法浏览网页了,这时如果把KV2005的网页监控关掉,就一切恢复正常;经过彻底地重装KV2005也无法解决。虽然并不是安装KV2005的每台机子都会出现这种问题,毕竟每台机子的系统有差异,安装的程序也不一样。但如果出现IE无法浏览网页时,也要注意检查一下杀毒软件。九、ApplicationManagement服务的问题出现只能上 不能开网页的情况,重新启动后就好了。不过就算重新启动,开7到8个网页后又不能开网页了,只能上 。有时电信往往会让你禁用ApplicationManagement服务,就能解决了。具体原因不明。十、感染了病毒所致这种情况往往表现在打开IE时,在IE界面的左下框里提示:正在打开网页,但老半天没响应。在任务管理器里查看进程,(进入方法,把鼠标放在任务栏上,按右键—任务管理器—进程)看看CPU的占用率如何,如果是100%,可以肯定,是感染了病毒,这时你想运行其他程序简直就是受罪。这就要查查是哪个进程贪婪地占用了CPU资源.找到后,最好把名称记录下来,然后点击结束,如果不能结束,则要启动到安全模式下把该东东删除,还要进入注册表里,(方法:开始—运行,输入regedit)在注册表对话框里,点编辑—查找,输入那个程序名,找到后,点鼠标右键删除,然后再进行几次的搜索,往往能彻底删除干净。有很多的病毒,杀毒软件无能为力时,唯一的方法就是手动删除。

回答于 2017-08-27


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/744146.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-14
下一篇2023-08-14

发表评论

登录后才能评论

评论列表(0条)

    保存