获取千千静听歌词下载地址(Delphi) 源码+Demo发布
之前做过通过千千静听歌词服务器下载歌词(Delphi版) 这个Demo程序,做完之后将主要过程封装在一个单元里了。
现在拿出来吧。也没有什么好保留的,呵呵。
主要封装了两个函数
function LrcListLink(Atrist,Title:string;Server:Integer):string;
function LrcDownLoadLink(LrcId:Integer;Atrist,Title:string;Server:Integer):string;
Atrist,Title就不用多说了,歌手和歌曲名。 Server参数是用来指定电信或网通歌词服务器的。0代表电信,1代表网通。
LrcDownLoadLink函数中的LrcID是通过LrcListLink函数获取到的一个XML中查找到得对应歌词的ID。
整个操作过程是这样的.
第一步,调用LrcListLink函数,返回的是一个String类型的URL,该地址为歌词服务器搜索到的歌词列表(XML格式),idhttp.Get即可获取。。
第二步,从XML歌词列表中选取歌词,将歌词对应的LrcID记录下来传给LrcDownLoadLink。
第三步,调用LrcDownLoadLink函数,返回URL,该地址即为第二步中选择的歌词的下载地址,idhttp.Get即可获取。
具体操作方法详见附件中的Demo
说明:由于Delphi7不支持Unicode所以做了GB2Unicode转码,而Delphi2009以上就支持Unicode了,直接使用了TEncoding类。
再一点,Delphi7中虽然转Unicode码实现了获取地址,但是歌词文件中若是包含Unicode字符时,则无法显示。如果有谁能解决Delphi7下
Unicode字符显示,烦请发一份Demo给我,在此先感谢了。
Demo中本人由于不太了解XML的操作类型,所以只是简单的字符串提取。囧TL。以后再改吧,不影响地址解析单元的使用。
--------------------------------毫--不--华--丽--的--分--割--线--------------------------------
--------------------------------毫--不--华--丽--的--分--割--线--------------------------------