2012-03-20 177 views
0

我想,以显示我的Spotify应用一个简单的播放列表视图中使用下面的代码:无法创建Spotify应用播放列表视图

sp = getSpotifyApi(1); 
var m = sp.require("sp://import/scripts/api/models"); 
var v = sp.require("sp://import/scripts/api/views"); 
var jq = sp.require('sp://XXX/jquery/jquery-1.7.1.min'); 

var pl = m.Playlist.fromURI('spotify:user:d3marcus:playlist:4zPZzImEYkUOVBvxIo42im'); 
var player = new v.Player(); 
player.track = pl.get(0); 
player.context = pl; 
var list = new v.List(pl); 
$('XXX').append(list.node); 

这将导致一个空列表视图,并陷入错误SP://import/scripts/language.js:44“遗漏的类型错误:无法读取的未定义的属性 '长'”

有什么建议?

+1

似乎这与清单文件的字符集有关。如果我保存为utf-8,它将工作,否则不会。 – 2012-03-20 20:09:50

回答

1

我会说你得到这个错误,因为当你做pl.get(0)播放列表尚未加载。为了确保播放列表模式已经加载,你可以做任何

pl = m.Playlist.fromURI('spotify:user:d3marcus:playlist:4zPZzImEYkUOVBvxIo42im'); 
pl.observe(models.EVENT.LOAD, function() { 
    player.track = pl.get(0); 
    ... 
}); 

m.Playlist.fromURI("spotify:user:d3marcus:playlist:4zPZzImEYkUOVBvxIo42im", function(pl) { 
    player.track = pl.get(0); 
    ... 
}); 
0

我不知道,不过你可以试试这个:

$('YYY').append($(player.node)); 
$('XXX').append($(list.node)); 

,而不是

$('XXX').append(list.node); 

让我们知道...

0

对于1.0 API:

require([ 
    '$api/models', 
    '$views/list#List' 
], function (models,List) { 

var addList = function(list) { 
    list.load('tracks').done(function(list) { 
     list.tracks.snapshot().done(function(trackSnapshot){ 

      // Make the playlist view 
      var multiple_tracks_player = document.getElementById('addedTracksList'); 
      var playableList = List.forPlaylist(list); 
      multiple_tracks_player.appendChild(playableList.node); 
      playableList.init(); 

     }); 
    }); 
} 

exports.addList = addList; 
} 

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

我测试过它上面的使用,所以它应该工作。

我发现这个在tutorial-app available on github“播放音乐”下-section - >“播放曲目列表”

我希望这是有帮助的。

相关问题