Spotify应用程序 - 获取播放列表轨道

时间:2012-02-20 14:06:01

标签: javascript spotify

我正在开发Spotify应用程序并希望获得播放列表的曲目。函数playlist.tracks但似乎是缓存并得到错误的曲目列表。它也应该很慢,不建议在API文档中使用。但是我有什么其他选择来获得播放列表的曲目?目前我正在使用playlist.tracks一次并通知我的后端列表。

感谢。

3 个答案:

答案 0 :(得分:1)

对于1.0 API:

require([
  '$api/models'
], function (models) { 

 var addList = function(list) {
    list.load('tracks').done(function(list) {
        list.tracks.snapshot().done(function(trackSnapshot){
            var tracks = trackSnapshot.toArray();
            for(var i=0; i<tracks.length; i++) {
                addTrack(tracks[i]);
            }
        });
    });
 }

 var addTrack = function(track) {
    track.load('name','artists').done(function(track) {
        var artists = track.artists;
        var artistsList = [];
        for (var i=0; i<artists.length; i++) {
            artistsList.push(artists[i].name);
        }
        // Print out info if desired
        var addedTrackRow = document.createElement('p');
        addedTrackRow.innerHTML = "Added track: " + artistsList.join(', ') + ' - ' + track.name;
        document.getElementById('addedTracks').appendChild(addedTrackRow);

    });
 }

 exports.addList = addList;
 exports.addTrack = addTrack;
}

// Example of use:
addList(models.Playlist.fromURI(...))
addTrack(models.Track.fromURI(...))

我已经按照上面的测试进行了测试,但它确实有效。

我花了一些时间自己寻找答案,我也在寻找如何访问列表中的曲目,即使它在“元数据”部分的tutorial-app available on github中进行了解释; “从艺术家,专辑,曲目或播放列表中获取元数据”。

我希望这很有用。

答案 1 :(得分:0)

这是一个小样本:

pl = new m.Playlist();
alb = m.Album.fromURI(uri, function(album) { 
   pl.name = album.name;
   $.each(album.tracks,function(index,track){
      pl.add(m.Track.fromURI(track.uri));   
   });

希望它可以帮助......

$.each(pl.data.all(),function(i,track){ myAwesomePlaylist.add(track); }); 

其中pl是播放列表

答案 2 :(得分:0)

Playlist实现接口Collection。因此,您可以在循环中调用播放列表对象上的函数get以获取所有曲目。示例代码:

var i=0;
for (i=0;i<models.library.starredPlaylist.length;i++)
{
    var track = models.library.starredPlaylist.get(i);
}
相关问题