NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

1. 搜尋音樂——可以獲取歌曲id,歌手,專輯名,歌曲圖片id等等等…

    var urlString = 'http://s.music.qq.com/fcgi-bin/music_search_new_platform?t=0&n=' number '&aggr=1&cr=1&loginUin=0&format=json&inCharset=GB2312&outCharset=utf-8¬ice=0&platform=jqminiframe.json&needNewCode=0&p=1&catZhida=0&remoteplace=sizer.newclient.next_song&w=' name;

註釋:number為搜尋數目量,name為搜尋關鍵詞(一般為歌曲名或歌手)

這裡需要用到一個代理

<?php
//搜尋
$url=$_POST['urlString'];
$res = file_get_contents($url);
echo $res;
?>

php返回的資料處理(返回的是json資料)

 $.post("search.php", {
urlString}, function(data) {
data = JSON.parse(data);
var html='<div class="song" id="song" style="border-bottom: 1px solid gray;border-right:1px solid gray;">歌曲名</div><div class="singer" id="singer"  style="border-bottom: 1px solid gray;">歌手</div>';
$('#lyric').html(String(html));
data['data']['song']['list'].forEach()})

foreach裡面該怎麼做就怎麼做,這裡不給程式碼了
2. 獲取歌曲圖片——先通過第一步獲取圖片id

‘http://imgcache.qq.com/music/photo/album_’ width ‘/’ (this.image_id%100) ‘/’ width ‘_albumpic_’ image_id ‘_0.jpg’

註釋:width為圖片寬度(自定義,不過我發現定義小於300就顯示不出來),image_id為歌曲的圖片id(通過歌曲搜尋可以得到)

3. 獲取歌曲——先通過第一步獲取歌曲id

歌曲有個坑,通過搜尋獲取歌曲id的時候會發現有兩種型別的id,一種是純數字的,一種是字母的,這是一個坑,因為網上的歌曲api一般為:

‘http://ws.stream.qqmusic.qq.com/’ id ‘.m4a?fromtag=46'

這隻能用於數字的id,無法獲取id為字母的

不過聰明的博主已經在搜尋api獲取的歌曲資訊中找到第二種了

‘http://ws.stream.qqmusic.qq.com/‘ id ’.m4a?fromtag=00‘

當然,這還不是全部的歌曲,有些曲子無法播放還有兩種可能:

①qq音樂沒有該歌曲版權(這個我也沒辦法)

②該歌曲為鈴聲(這個沒有搞出來)

4.獲取歌詞

`http://music.qq.com/miniportal/static/lyric/${id%100}/${id}.xml`

得到的是xml資料(在我的另一篇部落格中有說明怎麼處理這個xml資料)
用了ajax獲取的

<?php
$url=$_POST['txt'];
if(!empty($url))
{
$res = file_get_contents($url);
$s = iconv('gbk','UTF-8',$res);
echo $s;
}
?>

 $.ajax({
type:"post",
url:"lyric.php",
datatype:"xml",
data:{txt},
success:function(data){}})

函式裡面該怎麼處理就怎麼處理

相關文章

程式語言 最新文章