我现在遇到Toplists和Image的困难,我希望有人可以帮助我。基本上,我想做的就是创建一个播放器和播放列表与艺术家的顶级曲目。我尝试使用搜索,因为我无法从Toplists中获得所需的行为,但这并没有让我更接近我所以我想在这里问。
基本上,功能应该:
这看起来很简单,但它让我有点疯狂。
答案 0 :(得分:3)
您可以使用Toplist.forArtist
功能获取艺术家的前10首曲目。
以下代码获取艺术家的前10首曲目,并呈现列表视图和播放器:
require(['$api/toplists#Toplist', '$views/list#List', '$views/image#Image'],
function(Toplist, List, Image) {
var artist = models.Artist.fromURI('spotify:artist:2qk9voo8llSGYcZ6xrBzKx');
var toplist = Toplist.forArtist(artist);
// fetch the 10 most played tracks
toplist.tracks.snapshot(0, 10).done(function(tracks) {
// create temporary playlist
models.Playlist
.createTemporary('myTempList')
.done(function(playlist){
playlist.load('tracks').done(function(){
for (var i = 0, l = tracks.length; i < l; i++) {
var track = tracks.get(i);
playlist.tracks.add(track);
}
// append a list view
var listWrapper = document.getElementById('list-wrapper');
var list = List.forPlaylist(playlist);
listWrapper.appendChild(list.node);
list.init();
// append a player
// note that you might have a grey placeholder
// see https://stackoverflow.com/questions/17477655
var playerWrapper = document.getElementById('player-wrapper');
var player = Image.forPlaylist(playlist, {player: true});
playerWrapper.appendChild(player.node);
});
});
});
});
JS代码引用了包含视图的2个占位符:
<div id="list-wrapper"></div>
<div id="player-wrapper"></div>
请注意,由于mosaic cover images for temporary playlist出现问题,您可能需要将默认封面占位符替换为其他图片。
答案 1 :(得分:-1)
不幸的是,你似乎必须暴力破解它。