![](/img/trans.png)
[英]How can I get rid of the error I get when I want the audio features of a currently playing track on Spotify API?
[英]How do I get the audio features of current playing track with Spotify Web API?
https://developer.spotify.com/documentation/web-api/reference/tracks/get-audio-features/
嗨,我正在使用Spotify Web 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();
}
});
存在被描述一種相對較新的Spotify的Web API端點這里 。 它將為用戶返回與使用的訪問令牌相對應的當前播放曲目。
以下代碼段顯示了如何組合兩個端點以實現所需的功能。 此代碼段中使用的訪問令牌必須包括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
}
});
}
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。請參閱控制台日志的此屏幕快照: 在此處輸入圖像描述
您可以看到一個子文件夾“ item”,在該文件夾中可以找到“ id”。
因此,我替換為:url:“ https://api.spotify.com/v1/audio-features/06AKEBrKUckW0KREUWRnvT ”為此:url:“ https://api.spotify.com/v1/audio-features/ ” + apiData.item.id
它似乎有效,也許可以幫助其他人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.