Сравнить Spotify Uri's
API приложений Spotify v1
Попытка определить, находится ли воспроизводимая в данный момент песня из списка воспроизведения, который был добавлен в мое приложение. Однако, кажется, есть две формы плейлиста uri.
- http://open.spotify.com/user/[username]/playlist/[identifier]
- Spotify: Пользователь: @: список воспроизведения: [идентификатор]
Я предполагаю, что @ во второй форме означает "текущий пользователь". Перед тем, как начать создавать функцию сравнения URI, которая может быть избыточной, я подумал, что я проверю, не пропустил ли я что-то.
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" });
}
});
}
Учитывая, что модели доступны в функции. Примечание: даже если в Player было загружено текущее свойство дорожки, а для данного списка воспроизведения загружено свойство дорожек, функция все равно будет асинхронной, поскольку она получает текущий снимок.
Надеюсь это поможет!