一、概述
随着互联网的发展,人们对于在线音乐的要求越来越高,如何使用API打造一流的在线音乐体验,是每个开发者需要思考的问题。 酷狗音乐API是目前比较热门的API之一,提供了丰富多样的音乐资源,开发者可以通过接入酷狗音乐API,实现在线音乐播放、搜索、歌词展示、MV播放等功能。 本文将介绍如何使用酷狗音乐API,以及如何结合前端技术,打造一流的在线音乐体验。
二、接口说明
酷狗音乐API提供了丰富的接口,可以通过以下接口获取不同的音乐资源:
- 搜索歌曲接口:http://songsearch.kugou.com/song_search_v2
- 获取歌曲详细信息接口:http://wwwapi.kugou.com/yy/index.php
- 获取歌曲播放地址接口:http://wwwapi.kugou.com/yy/index.php
- 获取歌词接口:http://lyrics.kugou.com/search
- 获取MV播放地址接口:http://m.kugou.com/mvweb/html/index_XXXX.html,其中XXXX为MV的ID 通过这些接口,我们可以获取到酷狗音乐的歌曲、歌词、MV等丰富信息。
三、音乐搜索功能
在实现在线音乐播放前,我们需要先实现音乐搜索功能,方便用户搜索到自己想听的歌曲。
//搜索歌曲
function searchMusic(keyword) {
var url = "http://songsearch.kugou.com/song_search_v2?keyword=" + keyword + "&page=1&pagesize=10&platform=WebFilter";
$.ajax({
type: "GET",
url: url,
success: function(res) {
var data = JSON.parse(res)["data"]["lists"];
for (var i = 0; i < data.length; i++) {
var name = data[i]["SongName"];
var singer = data[i]["SingerName"];
var album = data[i]["AlbumName"];
var songId = data[i]["FileHash"];
//在页面上显示搜索结果
displaySearchResult(name, singer, album, songId);
}
},
error: function(err) {
console.log(err);
}
});
}
以上是搜索歌曲的核心代码,我们通过调用搜索歌曲接口,获取到搜索结果,并通过displaySearchResult()
函数,在页面上展示搜索结果。
四、播放音乐功能
有了搜索结果,我们就可以开始播放音乐了。播放音乐需要以下步骤:
- 获取歌曲详细信息(包括歌曲名、歌手名、专辑名、封面等)
- 获取歌曲播放地址
- 使用音乐插件(如jPlayer)播放音乐
//获取歌曲详细信息
function getSongInfo(songId) {
var url = "http://wwwapi.kugou.com/yy/index.php?r=play/getdata&hash=" + songId;
$.ajax({
type: "GET",
url: url,
success: function(res) {
var data = JSON.parse(res)["data"];
var songName = data["song_name"];
var singerName = data["author_name"];
var albumName = data["album_name"];
var imgUrl = data["img"];
var audioUrl = data["play_url"];
//在页面上显示音乐信息
displaySongInfo(songName, singerName, albumName, imgUrl);
//播放音乐
playMusic(audioUrl);
},
error: function(err) {
console.log(err);
}
});
}
//使用jPlayer播放音乐
function playMusic(audioUrl) {
$("#jquery_jplayer_1").jPlayer({
ready: function() {
$(this).jPlayer("setMedia", {
mp3: audioUrl
}).jPlayer("play");
},
swfPath: "/js",
supplied: "mp3",
wmode: "window"
});
}
以上是播放音乐的核心代码,我们通过调用获取歌曲详细信息接口和获取歌曲播放地址接口,获取到音乐的详细信息和播放地址,并使用jPlayer插件播放音乐。
五、歌词展示功能
有了歌曲的播放,我们还可以将歌词展示在页面上,方便用户跟唱。
//获取歌词
function getLyrics(songId) {
var url = "http://lyrics.kugou.com/search?ver=1&man=yes&client=pc&keyword=" + songId + "&hash=" + songId;
$.ajax({
type: "GET",
url: url,
success: function(res) {
var data = JSON.parse(res)["candidates"][0];
var lyricsUrl = data["accesskey"];
//获取歌词内容
$.ajax({
type: "GET",
url: lyricsUrl,
success: function(res) {
var lyrics = res.replace(/\[[^\]]+\]/g, "");
displayLyrics(lyrics);
},
error: function(err) {
console.log(err);
}
})
},
error: function(err) {
console.log(err);
}
})
}
//在页面上显示歌词
function displayLyrics(lyrics) {
$("#lyric-container").html("");
var lines = lyrics.split("\n");
for (var i = 0; i < lines.length; i++) {
$("#lyric-container").append("<p class=\"line\">" + lines[i] + "</p>");
}
}
以上是歌词展示的核心代码,我们通过调用获取歌词接口,获取到歌词的地址,并在页面上展示歌词内容。
六、MV播放功能
除了音乐播放和歌词展示,我们还可以通过酷狗音乐API获取到MV播放地址,并在页面上播放MV。
//获取MV播放地址
function getMVUrl(mvId) {
var url = "http://m.kugou.com/mvweb/html/index_" + mvId + ".html";
$.ajax({
type: "GET",
url: url,
success: function(res) {
var videoUrl = $(res).find("video").attr("src");
//在页面上播放MV
playMV(videoUrl);
},
error: function(err) {
console.log(err);
}
});
}
//使用video.js播放MV
function playMV(videoUrl) {
videojs("#mv-player", {
controls: true,
sources: [{
"type": "video/mp4",
"src": videoUrl
}]
});
}
以上是MV播放的核心代码,我们通过调用获取MV播放地址接口,获取到MV的地址,并使用video.js插件播放MV。 有了以上的代码支持,我们就可以使用酷狗音乐API打造一流的在线音乐体验了!