簡體   English   中英

Spotify應用-獲取播放列表曲目

[英]Spotify Apps - Getting Playlist Tracks

我正在開發Spotify應用,並希望獲取播放列表的曲目。 有功能playlist.tracks但似乎已緩存並獲得了錯誤的曲目列表。 它也應該很慢,不建議在API文檔中使用。 但是,我還有什么其他選擇來獲取播放列表的曲目? 此刻,我只使用一次playlist.tracks並將后端playlist.tracks通知我的后端。

謝謝。

對於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(...))

我已經對它進行了如上所述的測試,並且可以正常工作。

我花了一些時間自己尋找答案,而且我也在尋找如何訪問列表中的曲目,即使它在github上“ Metadata”部分的“ tutorial-app”中已經說明了; “從藝術家,專輯,曲目或播放列表中獲取元數據”。

我希望這是有用的。

這是一個小樣本:

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是播放列表

Playlist類實現了Collection接口。 因此,您可以在循環中調用函數get over playlist對象來獲取所有曲目。 示例代碼:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM