2014-02-20 6 views
1

지금은 Toplists와 Image에 어려움을 겪고 있습니다. 누군가 나를 도울 수 있기를 바라고 있습니다. 본질적으로, 내가하고 싶은 일은 아티스트 톱 트랙과 함께 플레이어와 재생 목록을 만드는 것입니다. Toplists에서 원하는 동작을 얻을 수 없기 때문에 검색을 사용해 보았습니다.하지만 여기서는 저를 가까이에 사지 않았으므로 여기서 물어볼 생각입니다.Spotify App API : 아티스트의 최고 트랙 플레이어 만들기

본질적으로, 기능이 있어야합니다

  1. 예술가는 새 임시 재생 목록 만들기 10 트랙
  2. 을 맨 것을
  3. 찾기 아티스트 이름이나 아티스트 ID를 가지고 10 개 트랙을 추가
  4. 만들고 플레이어와 재생 목록 삽입하기

이것은 꽤 쉬운 것처럼 보일지 모르지만, 그것은 나에게 약간의 열매를 맺고 있습니다.

+0

토플리스트 코드를 게시하는 것이 더 나을지도 모르며 문제가 무엇인지 확인할 수 있습니다. – Thomas

답변

3

당신은 예술가에 의해 상위 10 트랙을 가져 오는에 대한 Toplist.forArtist 기능을 사용할 수 있습니다 추적 찾기 모든 트랙

  • 의 인기를 검색합니다.

    다음 코드는 아티스트 상위 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> 
    

    mosaic cover images for temporary playlist의 문제로 인해 기본 표지 자리 표시자를 다른 이미지로 바꿔야 할 수도 있습니다.

  • +0

    이것은 완벽합니다. 고맙습니다! – Mitch

    +0

    플레이어 이미지를 사용자 정의 jpeg로 변경하는 링크가 있습니까? – Mitch

    +1

    당신은'var player = Image.fromSource ('img/image.png', {playerItem : playlist, player : true})와 같은 것을 할 것입니다; playerWrapper.appendChild (player.node);' –

    -1

    불행히도, 당신은 그것을 무력으로 강제해야 할 것 같습니다.

    • 반복하는 Artist's 앨범, 외관, 컴파일, 싱글 모두와 모든 트랙
    • 사용에게 제대로 문서화 -하지만 - 아마도 그 수집 :
      • 중 하나에 의해, 작가의 모든 트랙을 받기 쉽게 Search 모듈을 추측하고 아티스트를 검색하여 모든 트랙을 얻으실 수 있습니다. 여기에 advanced search docs
    • 가 상위 10 개 인기는
    +0

    나는 약간의 샘플 코드를 작성하려고했지만,이 코드를 보지 않을 것이라고 생각합니다. 아마도 http://www.last.fm/api/show/artist.getTopTracks가 더 나은 선택일까요? 그럼 당신은 MBI를 spotify uri로 변환하기 위해 echonest의 rosetta를 사용해야 만합니다. – Thomas

    +0

    downvoter에 대한 참고 사항 - 내 대답은 묻는 사람이 아티스트의 최고 트랙을 사용하고 싶지 않다는 내 인상을 기반으로했습니다. – Thomas