百度MP3音乐API接口及应用
http://cloud21.javaeye.com/blog/611914
这里有一篇关于百度MP3音乐APi接口的应用,写了一下关于这个百度接口的应用,他可以提供一小部分的搜索功能,将其使用在MP3搜索上还是有一点意思。只是提供的接口方式还是或多或少有一些缺陷。但是借助他能够使用在微博上还是挺有意思的,新浪微博在没有和官方合作的时候,这个搜索信息接口是不会提供的,只有合作的者才能使用到。 百度的搜索能力很强大,只是提供数据并不是对个人开放,因此只能借用这个小接口。
如上面作者所说的,既要歌曲名称 也要歌名,那么有我不记得歌手,那岂不是不能搜索。所以问题就在这里,搜索还是带来一点不方便性。
另外一个说法是,输入这两个关键字有利于定位,不过你需要记得歌手和歌曲名,返回的时间和是比较快的。
不过暂时使用也是可以的。
http://box.zhangmen.baidu.com/x?op=12&count=1&title=大约在冬季
修改两个关键字,方便我们进行替换。
替换的时候使用字符串分割,以#号为标记进行区分。
这样就可以实现替换的目的,搜索的时候就可以换成想要的链接地址了。
var infoArray:Array=info.split("#"); var newStr:String=searAPIURL.replace("songName",infoArray[0]); newStr= newStr.replace("songAuthor",infoArray[1]);
替换的时候再把多余的空格去除,输入的时候就可以随意一些。
//去除空白 private function replacSpace(str:String):String { return str= str.replace(/(/s)*/gi , ""); }
远程调用这个接口 会返回一个小数量的歌曲链接,在这个时候进行拼接搜索时候的歌曲,由于我们只是需要mp3文件,那么对于的wma 和rm都不是我们需要的,因此在搜索返回结果的时候需要进行帅选,选择之后绑定一个数组里面进行绑定,我们希望得到歌词,同时的做法就是参考上一篇文章所说的做法 拼接lrc的地址,lrc的地址有可能会出现空的情况,所以制作的时候可以加一个条件进行选择。
//裁剪mp3地址 private function getSongAddress(url:String,songName:String):String { var end:int=url.lastIndexOf("/",url.length - 1 ); return url.substring(0,end+1)+songName; } //返回lrc 地址 private function getLRC(url:String):String { return lrcURL+int(int(url)/100).toString()+"/"+url+&