2012-04-05 50 views
1

我跟蹤了Spotify應用程序API的播放列表示例,但除了示例播放列表之外,未觸發任何回調。Spotify App播放列表,未觸發的事件

working: "spotify:user:spotify:playlist:3Yrvm5lBgnhzTYTXx2l55x" 
not working: "spotify:user:1123874884:playlist:7xgiawpXZUVRFI1ohNfnP2" 

第一個來自示例,第二個是我的樣本播放列表。我打開他們兩個這樣的:

var playlist = models.Playlist.fromURI("spotify:user:shihjiapei:playlist:6YZtFxUCxmCgp3KDWTQhXW"); 
console.log("before event registration"); 
playlist.observe(models.EVENT.LOAD, function() { 
    console.log("Playlist loaded!"); 
    console.log(playlist); 
}); 
playlist.observe(models.EVENT.LOAD_ERROR, function() { 
    console.log("Playlist error: not public!"); 
    console.log(playlist); 
}); 

第一個說:播放列表加載! 第二個沒有說什麼...

我檢查了我的播放列表在spotify-client中是公開的。那麼,我還需要其他什麼祕密開關來輕彈?

任何經驗,最好的實踐表示讚賞。

編輯: WTF,它的工作原理就像..

var playlist_url = 'http://open.spotify.com/user/1123874884/playlist/7xgiawpXZUVRFI1ohNfnP2'; 
tempPlaylist = models.Playlist.fromURI(playlist_url, function(resultPlaylist) { 
    console.log("Playlist loaded!"); 
    console.log(resultPlaylist); 
}); 

但爲什麼它的工作原理與某些播放列表中的其他方式? ahhrg!

+0

好的:它似乎工作,如果我給它的http-url而不是spotify-url並立即給它一個回調.. – RedRoosterMobile 2012-04-05 15:58:52

回答

0

我想這可能是因爲你的第二個例子是本地播放列表,它在技術上已經加載(在你本地的Spotify客戶端中)。第一個例子是你可能還沒有訂閱的例子,所以它不存儲在本地,因此它需要下載。

放入HTTP uri而不是Spotify播放列表信息必須先下載播放列表信息,以便調用回調。