0

Spotify アプリ API v1

現在再生中の曲が、アプリにドロップされたプレイリストからのものかどうかを判断しようとしています。ただし、プレイリスト uri には 2 つの形式があるようです。

  1. http://open.spotify.com/user/[ユーザー名]/playlist/[識別子]
  2. Spotify:user:@:playlist:[識別子]

2 番目の形式の @ は「現在のユーザー」を意味すると仮定します。冗長な uri 比較関数を作成する前に、何か不足していないかどうかを確認しようと考えました。

4

1 に答える 1

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" });
    }
  });
}

モデルが関数で利用可能であることを考えると。補足: 現在再生中のトラック プロパティがプレーヤーに読み込まれ、指定されたプレイリストにそのトラック プロパティが読み込まれた場合でも、現在のスナップショットを取得しているため、関数は非同期のままです。

お役に立てれば!

于 2013-10-17T03:33:30.243 に答える