比较Spotify uri的

时间:2013-10-14 17:03:19

标签: javascript api uri spotify spotify-app

Spotify Apps API v1

尝试确定当前播放的歌曲是否来自放入我的应用中的播放列表。但是,似乎有两种形式的播放列表uri。

  1. http://open.spotify.com/user/ [用户名] /播放列表/ [标识符]
  2. Spotify的:用户:@:播放列表:[标识符]
  3. 我认为@在第二种形式中意味着'当前用户'。在我开始制作可能多余的uri比较功能之前,我想我会检查一下我是否遗漏了什么。

1 个答案:

答案 0 :(得分:0)

如果您允许用户将播放列表拖放到您的应用程序中,它们将是第一种格式。正如您所注意到的,API中没有任何方法可以完全满足您的要求,但您可以执行类似

的操作
var currentlyPlayingIsInPlaylist = function(playlistURI, callback) {
  models.player.load("track").done(function() {
    if (models.player.track) {
      var currentlyPlayingTrack = models.player.track;
      models.Playlist.fromURI(playlistURI).load("tracks").done(function(playlist) {
        playlist.tracks.snapshot().done(function(snapshot) {
          var matchingTrack = snapshot.find(currentlyPlayingTrack);
          if (matchingTrack) {
            callback(true);
          } else {
            callback(false);
          }
        });
      });
    } else {
      callback(null, { "message" : "No track is playing" });
    }
  });
}

鉴于模型在该功能中可用。旁注:即使当前播放的曲目属性已加载到播放器上,并且给定的播放列表已加载其曲目属性,该函数仍将是异步的,因为它正在获取当前快照。

希望这有帮助!