1

現在、トップリストと画像の両方で問題が発生しており、誰かが私を助けてくれることを願っています. 基本的に、私がやりたいことは、アーティストのトップ トラックを含むプレーヤーとプレイリストを作成することだけです。トップリストから目的の動作が得られないため、検索を使用してみましたが、それ以上の効果が得られなかったので、ここで質問したいと思いました。

基本的に、機能は次のことを行う必要があります。

  1. アーティスト名またはアーティストIDを取る
  2. アーティストのトップ 10 トラックを見つける
  3. 新しい一時プレイリストを作成し、10 トラックを追加します
  4. プレーヤーとプレイリストを作成して挿入する

これはかなり簡単に思えるかもしれませんが、私は少し頭がおかしくなりました。

4

2 に答える 2

3

Toplist.forArtistアーティスト別の上位 10 曲を取得する関数を使用できます。

次のコードは、アーティストの上位 10 曲をフェッチし、リスト ビューとプレーヤーをレンダリングします。

require(['$api/toplists#Toplist', '$views/list#List', '$views/image#Image'],
  function(Toplist, List, Image) {

  var artist = models.Artist.fromURI('spotify:artist:2qk9voo8llSGYcZ6xrBzKx');
  var toplist = Toplist.forArtist(artist);

  // fetch the 10 most played tracks
  toplist.tracks.snapshot(0, 10).done(function(tracks) {

    // create temporary playlist
    models.Playlist
      .createTemporary('myTempList')
      .done(function(playlist){ 
        playlist.load('tracks').done(function(){
          for (var i = 0, l = tracks.length; i < l; i++) {
              var track = tracks.get(i);
              playlist.tracks.add(track);
          }

          // append a list view
          var listWrapper = document.getElementById('list-wrapper');
          var list = List.forPlaylist(playlist);
          listWrapper.appendChild(list.node);
          list.init();

          // append a player
          // note that you might have a grey placeholder
          // see https://stackoverflow.com/questions/17477655
          var playerWrapper = document.getElementById('player-wrapper');
          var player = Image.forPlaylist(playlist, {player: true});
          playerWrapper.appendChild(player.node);
      });
    });
  });
});

JS コードは、ビューを含む 2 つのプレースホルダーを参照します。

    <div id="list-wrapper"></div>
    <div id="player-wrapper"></div>

一時プレイリストのモザイク カバー画像に問題があるため、デフォルトのカバー プレースホルダーを別の画像に置き換える必要がある場合があることに注意してください。

于 2014-02-21T06:48:32.577 に答える