Spotify 应用程序 API v1
试图确定当前播放的歌曲是否来自放入我的应用程序的播放列表。然而,播放列表 uri 似乎有两种形式。
- http://open.spotify.com/user/[用户名]/playlist/[标识符]
- spotify:user:@:playlist:[标识符]
我假设第二种形式的 @ 表示“当前用户”。在我开始制作一个可能多余的 uri 比较函数之前,我想我会检查一下我是否遗漏了一些东西。
Spotify 应用程序 API v1
试图确定当前播放的歌曲是否来自放入我的应用程序的播放列表。然而,播放列表 uri 似乎有两种形式。
我假设第二种形式的 @ 表示“当前用户”。在我开始制作一个可能多余的 uri 比较函数之前,我想我会检查一下我是否遗漏了一些东西。
如果您允许用户将播放列表放入您的应用程序,它们将是第一种格式。正如您所注意到的,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" });
}
});
}
鉴于模型在函数中可用。旁注:即使当前播放的曲目属性已加载到 Player 上,并且给定的播放列表已加载其曲目属性,该函数仍将是异步的,因为它正在获取当前快照。
希望这可以帮助!