1

Spotify Apps API を使用してアルバム検索をしようとしていますが、結果にデータがありません。具体的には、numResults は常に 0 であり、年は 0 の場合があります。例:

var search = new models.Search("genre:Jazz");
search.searchTracks = false;    
search.observe(models.EVENT.CHANGE, function() {
    console.log(search.albums);
    for(var i in search.albums) {
        console.log(search.albums[i].data.year)
    }
});
search.appendNext();

コンソールを見ると、多くのアルバムが年に 0 を返します。しかし、Metadata API を使用してこれらのアルバムをチェックすると、1 年が正常に返されます。興味深いことに、トラックを同時に検索すると、より良い結果が得られます。

var search = new models.Search("genre:Jazz");
search.searchTracks = true;
search.observe(models.EVENT.CHANGE, function() {
    console.log(search.albums);
    for(var i in search.albums) {
        console.log(search.albums[i].data.year)
    }
});
search.appendNext();

ただし、一部のアルバムではまだ年が表示されていません (おそらく、50 トラックの検索結果でトラックが返されなかったアルバムです)。

すべてのアルバムに対して年が返されるように、検索クエリを構造化する方法についてアイデアを持っている人はいますか、それともおそらくバグですか?

(注: あるジャンルに対して 2 番目のコード サンプルを実行すると、キャッシュにより最初のコード サンプルの方が良い結果が返されます。新しいジャンルで試してみると、年の 0 がたくさん表示されます)。

4

2 に答える 2

0

メタデータが確実に読み込まれるように、各アルバムで models.Album.fromURI を使用してみてください。このようなもの:

var search = new models.Search("genre:Jazz");
search.searchTracks = false;    
search.observe(models.EVENT.CHANGE, function() {
    console.log(search.albums);
    for(var i in search.albums) {
        var a = models.Album.fromURI(search.albums[i].uri, function(album) {
          console.log(album.year)
        }
    }
});
search.appendNext();

私が取り組んでいるアプリでこの種のものを使用しましたが、データが完全であることを確認するのに役立つようです.

于 2012-03-10T15:53:34.487 に答える
0

models.EVENT.CHANGE必要なアルバムのイベントを監視していることを確認してください。その情報は個別に、多くの場合遅延して読み込まれます。

于 2012-01-22T21:21:29.763 に答える