1
在这里让我不知道如何获取给定轨道播放列表的图像。Spotify api 1.0.0获取给定轨道播放列表的图像
我只是不能得到它的工作。
这是我的代码。
我包括两个播放列表,一个是由一组给定的音轨和一个实际存在的音轨组成。
我在做什么错第一个?我是否正确创建临时播放列表?
require([
'$api/models',
'$views/image#Image',
'$views/list#List'
], function(models, Image, List) {
'use strict';
var image, trackUris, tracks = [], customPlaylist, customPlaylistList;
// list of track uris
trackUris = [
'spotify:track:0jakfggA0WkYpkAXni6pts',
'spotify:track:2g1EMRbn6So6zGTdwNyySf',
'spotify:track:4kNfh9In8hjuuERSZhwTTx',
'spotify:track:1JHUxxd77M4ViaqJZfBdl0',
'spotify:track:6x3db7BbBjDYZH2ZAcvYyC',
'spotify:track:6czyeVTQtHYPnZgXE6op0I',
'spotify:track:51Vyh1xfCD27SneoG7NAhb'
];
// get track objects from uris
for (var i = 0; i < trackUris.length; i++) {
tracks.push(models.Track.fromURI(trackUris[i]));
}
// create temporary playlist
var title = 'tmp_' + Date.now();
var tmp = models.Playlist.createTemporary(title).done(function(playlist){
// get tracks collection and add tracks to it
playlist.load(['tracks']).done(function(){
for (var i = 0; i < tracks.length; i++) {
playlist.tracks.add(tracks[i]);
}
});
customPlaylist = playlist;
}).fail(function() {
console.log("Failed");
});
// create image of playlist
image = Image.forPlaylist(customPlaylist, {width: 200, height: 200, player: true});
document.getElementById('customPlaylistCover').appendChild(image.node);
// create a list view for the playlist
customPlaylistList = List.forPlaylist(customPlaylist);
document.getElementById('customPlaylistList').appendChild(customPlaylistList.node);
customPlaylistList.init();
// get all the above for an existing playlist
var playlist = models.Playlist.fromURI('spotify:user:116690321:playlist:6l3dvYJaGrX5mqkNntbyLx');
image = Image.forPlaylist(playlist, {width: 200, height: 200, player: true});
document.getElementById('playlistCover').appendChild(image.node);
var playlistList = List.forPlaylist(playlist);
document.getElementById('playlistList').appendChild(playlistList.node);
playlistList.init();
});
好的,但它应该显示一个马赛克,对不对?在之前的API中它起作用了,为什么这不起作用:s – Bundy
我已经扩展了我以前的答案,希望它有帮助! –
感谢您的澄清,但这并没有解决问题:)我测试了这与models.Playlist.create('Test')。done(...);而且每件事物都是有用的。但出于某种原因,您无法从临时播放列表中加载马赛克。这意味着如果您正在构建一个应用程序,可以从随机轨道(例如来自Echo Nest)生成播放列表,则无法显示马赛克图像。我唯一的工作是获得前4个轨道的图像ID,并通过改变背景图像来自己创建马赛克:马赛克:id1:id2:id3:id4但似乎很错误:) – Bundy