Javascript Spotify应用程序API:播放专辑中的特定曲目

Javascript Spotify应用程序API:播放专辑中的特定曲目,javascript,spotify,Javascript,Spotify,我遵循了这个问题的公认答案: 然而,这对我不起作用。Spotify仍在播放专辑的第一首曲目 我已经看过view.js,我知道为什么它会播放第一首曲目: if (play) { if (m.player.context !== this._context.uri) { m.player.play(this._context.get(0), this._context); } 下面是我的代码,有什么想法/建议吗 var track = models.Track.from

我遵循了这个问题的公认答案:

然而,这对我不起作用。Spotify仍在播放专辑的第一首曲目

我已经看过view.js,我知道为什么它会播放第一首曲目:

if (play) {
    if (m.player.context !== this._context.uri) {
      m.player.play(this._context.get(0), this._context);
    }
下面是我的代码,有什么想法/建议吗

var track = models.Track.fromURI(item.SpotifyUrl, function(track) { 
    var album = models.Album.fromURI(track.album.uri, function(album) {
        var trackPlayer = new views.Player();
        var t = album.data.tracks[track.data.trackNumber-1];
        trackPlayer.track = t;      
        album.get = function() {
            console.log(track.name); // I know this is being called
            return track;
        }           
        trackPlayer.context = album;
        var $player = $(trackPlayer.node);
    });
});
提前谢谢

更新:

我进一步查看了api,在models.js中发现:

if (index === -1) {
...
    else if (context instanceof Album) {
        numTracks = context.tracks.length;
        while (i < numTracks) {
            if (context.tracks[i].data.availableForPlayback) {
                track = context.tracks[i];
                index = i;
                break;
            } else {
                i++;
        }
省略“index”参数。因此,玩家将始终播放第一首可用曲目!为了解决这个问题,我添加了以下内容:

models.player.play = function(track, opt_context, opt_index) {
    return this.playTrackWithContext(track,opt_context,track.data.trackNumber-1);
};
这似乎有点麻烦,但在Spotify更新代码之前,这似乎是唯一的解决办法。除非我完全错过了什么,还有更简单的方法吗?

可能是重复的
models.player.play = function(track, opt_context, opt_index) {
    return this.playTrackWithContext(track,opt_context,track.data.trackNumber-1);
};