2014-03-01 6 views
1

내 앱의 경우 나중에 사용할 스냅 샷으로 전환하기 전에 컬렉션을 셔플해야합니다. documentation the shuffle() 메서드에 따르면 해당 트랙이 무작위로 새 컬렉션을 반환하므로 snapshot() 메서드를 즉시 호출 할 수 있어야합니다 (snapshot() 같은 Promise를 반환하지 않기 때문에).Spotify의 컬렉션의 Shuffle 메서드가 예상대로 작동하지 않습니다.

다음은 셔플 방식이 아닌 예상대로 작동하는 테스트 코드입니다. 그러나 추가 된 콘솔에는 아무 것도 표시되지 않습니다.

playlist.load('tracks').done(function(tracks) { 

    // Works when shuffle() is removed      
    playlist.tracks.shuffle().snapshot() 
    .done(

     function(snapshot) { 
     console.log(snapshot); 

     for (var i = 0; i < snapshot.length; i++) { 
      var track = snapshot.get(i); 
      console.log(track.name); 
     } 
     } 
    ); 
}); 

아이디어가 있으십니까?

답변

1

야심적인 문서처럼 보입니다. 셔플이 구현되지 않은 것처럼 보입니다. 나는이 실행되면 :

require(['$api/models'], function (models) { 
    playlist = models.Playlist.fromURI(localStorage.album_radio_playlist); 

    playlist.load('tracks').done(function (tracks) { 
     console.log(tracks); 
     // Works when shuffle() is removed      
     playlist.tracks.shuffle().snapshot() 
      .done(

      function (snapshot) { 
       console.log(snapshot); 

       for (var i = 0; i < snapshot.length; i++) { 
        var track = snapshot.get(i); 
        console.log(track.name); 
       } 
      } 
     ).fail(function (blah, err) { console.log("failed to shuffle " + err); }); 
    }); 
}); 

을 나는,이 출력

14:46:05.156 A [shell/lists/ItemListFactory.h:239] Check failed: Not implemented!  
14:46:05.167 I [sp://67456db3aaa5a1c25a619472cdb2cbc3f52da3ed.album-radio/js/albumradio.js:684] failed to shuffle undefined 
+0

GRR있어 내가 나 자신을 구현해야 할 것이다 것 같습니다. 감사. –

+0

@ 윌 폴 (WillPaul) 어떻게이 일을 끝내게 되었습니까? Shuffled 재생 목록을 사용하여보기 목록을 간단하게 만들려고 애 쓰고 있습니다. – ProLoser

+0

거기에 무엇이 관련되어 있는지 알지 못하기 때문에 뷰를 구현하지 않았습니다. 기본적으로 스냅 샷의 길이 1에서 0까지의 int 배열을 만들었습니다. 그런 다음 피셔 - 예이츠 셔플을이 배열에 적용했습니다. 그런 다음 스냅 샷에서 각 노래를 가져 오기 위해 반복했습니다. 보기를 줄 수있는 임시 재생 목록 모음을 만드는 것과 비슷한 것을 할 수 있습니다. –