这是我的“小”项目,因为我自己不是开发人员,请不要因为我的愚蠢问题而责备我。
我想创建一个“有声书机”。
我想使用一个网站,该网站展示了几位有声读物的艺术家。如果我点击一位艺术家,则应播放点击艺术家的随机有声读物。
我看了一下这段代码示例: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进行定义,以便艺术家是正确的。
有人可以帮我解决我的问题吗?还有什么其他信息可以完成我的目标?
如果能给我一些暗示,或者其他什么,我会非常感激,以便找到正确的方向。
祝你好运, goeste
答案 0 :(得分:0)
您必须在此处修改fetchTracks
功能:
var fetchTracks = function (albumId, callback) {
$.ajax({
url: 'https://api.spotify.com/v1/albums/' + albumId,
success: function (response) {
callback(response);
}
});
};
jsFiddle link
答案 1 :(得分:0)
我离终点线更近了......好吧,我猜:
我在GitHub上找到了以下内容:
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张专辑中获得20张专辑。我需要增加限制。正如我在Spotify的开发者网站上看到的那样,最大限制为50。因为我只需要从35张专辑(随机)中获得一张,我如何实现随机化功能并发挥功能才能发挥作用?
我仍在研究如何根据结果创建链接以显示在node.js的网站上。
致以最诚挚的问候,并提前感谢您的帮助/帮助! -goeste