使用Spotify webAPI播放艺术家(ID)的随机专辑

这里是我的“小”项目,因为我不是一个开发人员,请不要怪我愚蠢的问题。

我想创build一个“audio书机”。

我想使用一个网站,显示几个艺术家的有声读物。 如果我点击一位艺术家,应该播放一个随机点击的艺术家的有声读物。

我看了这个代码示例: http : //jsfiddle.net/qlmhuge/t7a1sh4u/

// find template and compile it var templateSource = document.getElementById('results-template').innerHTML, template = Handlebars.compile(templateSource), resultsPlaceholder = document.getElementById('results'), playingCssClass = 'playing', audioObject = null; var fetchTracks = function (albumId, callback) { $.ajax({ url: 'https://api.spotify.com/v1/artists/61qDotnjM0jnY5lkfOP7ve/albums/', success: function (response) { callback(response); } }); }; var searchAlbums = function (query) { $.ajax({ url: 'https://api.spotify.com/v1/search', data: { q: 'artist:' + query, type: 'album', market: "DE" }, success: function (response) { resultsPlaceholder.innerHTML = template(response); } }); }; results.addEventListener('click', function(e) { var target = e.target; if (target !== null && target.classList.contains('cover')) { if (target.classList.contains(playingCssClass)) { audioObject.pause(); } else { if (audioObject) { audioObject.pause(); } fetchTracks(target.getAttribute('data-album-id'), function(data) { audioObject = new Audio(data.tracks.items[0].preview_url); audioObject.play(); target.classList.add(playingCssClass); audioObject.addEventListener('ended', function() { target.classList.remove(playingCssClass); }); audioObject.addEventListener('pause', function() { target.classList.remove(playingCssClass); }); }); } } }); searchAlbums('TKKG'); 

但我无法弄清楚如何改变它来播放一个艺术家的随机专辑。

艺术家将由spotify ID确定,以便艺术家是正确的。

有人可以帮我解决我的问题吗? 还有什么需要的信息来完成我的目标?

如果能够给我一个暗示,或者其他任何方法,我会非常感激。

最好的问候,去世

你必须在这里修改你的fetchTracks函数:

 var fetchTracks = function (albumId, callback) { $.ajax({ url: 'https://api.spotify.com/v1/albums/' + albumId, success: function (response) { callback(response); } }); }; 

jsFiddle 链接

我接近终点线了…我想:

我在GitHub上find了以下内容:

 var SpotifyWebApi = require('spotify-web-api-node'); var spotifyApi = new SpotifyWebApi(); // credentials are optional // var spotifyApi = new SpotifyWebApi({ // clientId : '', // clientSecret : '', // redirectUri : '' // }); // Get albums by a certain artist spotifyApi.getArtistAlbums('3meJIgRw7YleJrmbpbJK6S') .then(function(data) { console.log('Artist albums', data.body); }, function(err) { console.error(err); }); 

但是,我只有35张专辑中有35张。我需要增加限制。 我在Spotify的开发者网站上阅读的最大限制是50。 因为我只需要从35张专辑中随机抽出一张,我该如何实现随机化function以及播放function呢?

我仍然在想出如何创build一个链接从结果显示在一个网站与node.js。

最好的问候,并提前感谢您的帮助/帮助! -goeste