百度MP3音乐API接口及应用

最近在做一个播放器的项目,要实现从网络下载歌曲和歌词,看了很多别人的帖子和博客,今天上午终于搞定,也来总结一下,希望能帮助大家,好了,不说废话了,,进入正题。

百度提供了一个开放音乐搜索的api,在浏览器的地址栏输入:

?op=12&count=1&title=歌名$$歌手$$$$

其中歌名和歌手两个字段值需要经过utf-8编码URLEncoder.encode(song.trim(),“utf-8”);这个是编码方法然后访问回来的中歌曲下载的url还要处理一下,如:

?op=12&count=1&title=怒放的生命$$汪峰$$$$,返回xml格式的流。

<?xmlversion="1.0"encoding="gb2312"?>

<result>

<count>1</count>

<url>

<encode>

-<![CDATA[

]]>

</encode>

<decode>

-<![CDATA[4725615.mp3?xcode=93666b46921fb2cb30b0581eb794ca53&mid=0.77868413971885

]]>

</decode>

<type>8</type>

<lrcid>25635</lrcid>

<flag>1</flag>

</url>

<durl>

<encode>

-<![CDATA[$

]]>

</encode>

<decode>

-<![CDATA[829260.mp3?xcode=93666b46921fb2cb30b0581eb794ca53&mid=0.77868413971885

]]>

</decode>

<type>8</type>

<lrcid>25635</lrcid>

<flag>1</flag>

</durl>

<p2p>

<hash>284df2cfe87b4fe1442f4469aa688abc067a6243</hash>

<url>

-<![CDATA[?xcode=93666b46921fb2cb30b0581eb794ca53

]]>

</url>

<type>mp3</type>

<size>6795585</size>

<bitrate>192</bitrate>

</p2p>

</result>

大多数标签式没用的,<encode>,<decode>和<lrcid>三个标签是我们需要的,以第一个<url>为例;只需要用4725615.mp3?xcode=93666b46921fb2cb30b0581eb794ca53&mid=0.77868413971885替换

中的ZWllaWtnbGaeomZzrZmmnJZvbGdrbG2aZWhsZmacmWqUlGZkl2ZscGKXlWtuapqZZmVZoZ6adGhfaWpsa25raWRramVtbmw4,这样就得到了歌曲的下载地址。lrcid这个的值是百度服务器上这首歌的歌词文件的文件名,这个文件的路径是:

这个地址解析下:这个是百度lrc歌词存放地址这个地址解析下:这个是百度lrc歌词存放地址这个地址解析下:这个是百度lrc歌词存放地址,256是lrcid里的值除以100,后边的25635就是lrcid的值,这样就得到了歌曲的下载地址。如果lrcid的值为0,则表示没有对应的歌词。很简单吧,试试吧,嘿嘿…..

原来和文字沾上边的孩子从来都是不快乐的,

百度MP3音乐API接口及应用

相关文章:

你感兴趣的文章:

标签云: