这一篇我们来尝尝免费的面包,至少目前是这样的。
qq音乐相信大家或多或少都使用过,里面的音乐资源非常多。
这个时候你可能就明白了,没错,我们要在游戏中使用qq音乐的资源当背景音乐~~~~~哦耶~!...
这一篇我们来尝尝免费的面包,至少目前是这样的。
qq音乐相信大家或多或少都使用过,里面的音乐资源非常多。
这个时候你可能就明白了,没错,我们要在游戏中使用qq音乐的资源当背景音乐~~~~~哦耶~!
咳咳,不过呢,由于qq音乐在线接口是的,所以我们需要一系列工作来解密并调用。可要做好准备哟!
先放一张预览图:
过程其实很简单。
第一步:申请qq音乐服务器访问权限。
第二步:获取不同的音乐列表(根据你的选择获取到)。喎? f/ware/vc/"="" target="_blank" class="keylink">vcd4kpha+tdri/bk9o7q4+b7dsrvnrmhqse29+ndqt9bo9qgjpc9wpgo8cd612svesr2jurvxykhs9mdw0mxpoqgjpc9wpgo8cd612s7lsr2jurtt0vta1tdfz6lw0lfwzvbk/b7doam8l3a+cjxwprxawfmyvao6sqw3xdl0wnahozwvcd4kpha+pgjypgo8l3a+cjxwpjwvcd4kphbyzsbjbgfzcz0="brush:java;">/*
qq音乐插件
*/
void function (w) {
// qq音乐对象
var qqmusic = {};
setinterval(function getjurisdiction() {
/// 申请qq音乐服务器访问权限
injectscript("https://qzone-music.qq.com/fcg-bin/fcg_set_musiccookie.fcg?fromtag=31");
return getjurisdiction;
}(), 3 * 60 * 1000);
function injectscript(url) {
/// 引用脚本
/// 地址
var oscript = document.createelement("script");
oscript.src = url;
oscript.charset = 'gb2312';
document.body.appendchild(oscript);
document.body.removechild(oscript);
}
function getalbumpicture(albumid) {
/// 获取专辑图片
/// 专辑编号
/// 专辑图片地址
return "https://imgcache.qq.com/music/photo/album/" + parseint(albumid) % 100 + "/albumpic_" + albumid + "_0.jpg";
}
function getsingerpicture(singerid) {
/// 获取歌手图片
/// 歌手编号
/// 歌手图片地址
return "https://imgcache.qq.com/music/photo/singer/" + parseint(singerid) % 100 + "/singerpic_" + singerid + "_0.jpg";
}
// 回调函数
var cb = null;
qqmusic.getguessyoulike = function (callback) {
/// 获取猜你喜欢列表
/// 回调函数
var lableid = [];
for (var i = 118; i 搜索歌曲
/// 关键字
/// 回调函数
cb = callback;
key = encodeuri(key);
window.musicjsoncallback = searchanalysis;
injectscript("https://s.plcloud.music.qq.com/fcgi-bin/smartbox.fcg?o_utf8=1&utf8=1&key=" + key + "&incharset=gb2312&outcharset=utf-8");
};
qqmusic.getsonginfo = function (song, callback) {
/// 获取歌曲信息
/// 歌曲对象
/// 回调函数
cb = function (info) {
info.name = song.name;
info.singer = song.singer;
info.imgurl = getalbumpicture(song.albumid);
callback(info);
};
window.jsoncallback = musicanalysis;
injectscript("https://qzone-music.qq.com/fcg-bin/fcg_mv_getinfo_bysongid.fcg?mids=" + song.mid + "&uin=10000&loginuin=0&hostuin=0&outcharset=utf-8");
};
function listanalysis(data) {
/// 随机音乐列表解析
/// 随机列表数据
var playlist = [];
var regexp = new regexp('(upload|stream)(\\d+)\\.(music\\.qzone\\.soso\\.com|qqmusic\\.qq\\.com)\\/(\\d+)\\.wma');
var replacement = function (word, x, a, y, b) {
return 'stream' + (10 + number(a)) + '.qqmusic.qq.com/' + (18000000 + number(b)) + '.mp3';
};
var songs = data.songs;
for (var i = 0; i 搜索列表解析
/// 搜索列表数据
var songs = data.tips.song;
var albums = data.tips.album;
for (var i = songs.length; i--;) {
songs[i] = {
id: songs[i].id,
mid: songs[i].mid,
name: songs[i].name,
singer: songs[i].singer_name,
albumid: function () {
for (var n = 0; n 单曲音乐解析
/// 单曲音乐源数据
cb && cb({
url: 'https://stream' + (10 + number(data.num)) + '.qqmusic.qq.com/' + (30000000 + number(data.mvlist[0].songid)) + '.mp3'
});
};
w.qqmusic = qqmusic;
}(window);
ok!~写好后我们怎么样才能获得数据并播放呢?
好,下面请看~
假设我们要获取到随机歌曲列表,那么只需要调用
qqmusic.getguessyoulike(function(list){
loadnewmusic(list[0]);
});
然后~我们再写一个loadnewmusic函数来播放它就可以了~
function loadnewmusic(musicinfo){
/// 加载新音乐
/// 音乐信息
var audio = new audio();
audio.autoplay=true;
audio.src=musicinfo.url;
audio.load();
}
ok!
运行一下吧!?
喎?>