https://developer.spotify.com/documentation/web-api/reference/tracks/get-audio-features/
嗨,我正在使用Spotify网络API来获取曲目的音频功能。在上面提到的网站中,有关于其工作原理的解释。问题在于,它只能从一个特定的轨道获取音频功能,具体取决于ID。 但是我想在播放其他曲目时更改ID,以便获得当前正在播放曲目的音频功能。有人知道该怎么做吗?在下面的代码中,您可以看到URL。在链接的末尾,您将看到:06AKEBrKUckW0KREUWRnvT 那是音轨的ID。
这是我的代码:
$.ajax({
url: 'https://api.spotify.com/v1/audio-features/06AKEBrKUckW0KREUWRnvT',
headers: {
'Authorization': 'Bearer ' + access_token
},
success: function(response) {
audioFeaturesPlaceholder.innerHTML = audioFeaturesTemplate(response);
console.log(response);
$('#login').hide();
$('#loggedin').show();
}
});
答案 0 :(得分:0)
有一个相对较新的Spotify Web API端点,描述为here。它将为用户返回与使用的访问令牌相对应的当前播放曲目。
以下代码段显示了如何组合两个端点以实现所需的功能。此代码段中使用的访问令牌必须包含user-read-currently-playing
范围。
var access_token = "<YOUR_ACCESS_TOKEN_HERE>";
(async () => {
var currentTrack = await ajax("https://api.spotify.com/v1/me/player/currently-playing");
var audioFeatures = await ajax(`https://api.spotify.com/v1/audio-features/${currentTrack.item.id}`);
console.log(audioFeatures);
})();
function ajax(url) {
return $.ajax({
url: url,
headers: {
'Authorization': 'Bearer ' + access_token
}
});
}
答案 1 :(得分:0)
setInterval(function(){
callAjax();
}, 1000);
var apiData;
var audioData;
var callAjax = function(){
$.ajax({
url: 'https://api.spotify.com/v1/me/player/currently-playing',
headers: {
'Authorization': 'Bearer ' + access_token
},
success: function(response) {
currentPlayingPlaceholder.innerHTML = currentPlayingTemplate(response);
apiData = response;
console.log(response);
$('#login').hide();
$('#loggedin').show();
}
});
if(apiData != undefined){
$.ajax({
url: "https://api.spotify.com/v1/audio-features/" + apiData.item.id,
//url: "https://api.spotify.com/v1/audio-features/06AKEBrKUckW0KREUWRnvT",
headers: {
'Authorization': 'Bearer ' + access_token
},
success: function(response) {
audioFeaturesPlaceholder.innerHTML = audioFeaturesTemplate(response);
//audioData = response;
console.log(response);
$('#login').hide();
$('#loggedin').show();
}
});
}
我创建了一个名为apiData的变量。然后,您可以使用item.id标识当前正在播放的曲目的ID。 请参见控制台日志的以下屏幕截图: enter image description here
您可以看到一个子文件夹'item',在该文件夹中可以找到'id'。
所以我替换了这个:url:“ https://api.spotify.com/v1/audio-features/06AKEBrKUckW0KREUWRnvT” 为此:url:“ https://api.spotify.com/v1/audio-features/” + apiData.item.id
这似乎行得通,也许可以帮助其他人。