比较 Spotify uri

Posted

技术标签:

【中文标题】比较 Spotify uri【英文标题】:Compare Spotify uri's 【发布时间】:2013-10-22 07:45:58 【问题描述】:

Spotify 应用 API v1

试图确定当前播放的歌曲是否来自放入我的应用程序的播放列表。然而,播放列表 uri 似乎有两种形式。

    http://open.spotify.com/user/[用户名]/playlist/[标识符] spotify:user:@:playlist:[标识符]

我假设第二种形式的 @ 表示“当前用户”。在我开始制作一个可能多余的 uri 比较函数之前,我想我会检查一下我是否遗漏了什么。

【问题讨论】:

现在,我要使用 uri.substr(-22) 这个非常糟糕的主意 【参考方案1】:

如果您允许用户将播放列表拖放到您的应用程序中,它们将是第一种格式。正如您所注意到的,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" );
    
  );

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

希望这会有所帮助!

【讨论】:

谢谢。不过,格式 #1 来自从 spotify 中的播放列表拖动到我在 spotify 中的应用程序。至少在 0.9.4 上。但这可能是因为我使用的是 html 拖放而不是 drop 事件。

以上是关于比较 Spotify uri的主要内容,如果未能解决你的问题,请参考以下文章

如何自动播放 Spotify 播放列表 URI?

spotify 的重定向 URI 无效

没有重定向 URI 的 Spotify?

如何获取 Spotify 跟踪 uri?

Spotify API 非法 redirect_uri

Spotify ios SDK 登录:无效的重定向 URI