【问题标题】:Spotify's Collection's Shuffle method not working as expectedSpotify 的 Collection 的 Shuffle 方法没有按预期工作
【发布时间】:2014-04-03 00:38:11
【问题描述】:

对于我的应用,我需要在将集合转换为快照以供以后使用之前对其进行洗牌。根据documentation the shuffle() 方法返回一个带有随机轨道的新集合,所以我应该能够立即调用 snapshot() 方法(因为它不会像 snapshot() 那样返回 Promise)。

这是我的测试代码,它在没有 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);
        }
      }
    );
});

有什么想法吗?

【问题讨论】:

    标签: javascript spotify spotify-app


    【解决方案1】:

    看起来像一些雄心勃勃的文档 - 似乎没有实现 shuffle。当我运行这个时:

    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
    

    【讨论】:

    • Grr,看来我得自己实现了。谢谢。
    • @WillPaul 你最终是如何让它工作的?我一直在努力尝试使用随机播放列表创建一个视图列表。
    • 我从来没有为它实现过视图,所以我不知道那里涉及到什么。基本上,我创建了一个从 0 到快照长度为 1 的整数数组。然后我对这个数组应用了 Fischer-Yates shuffle。然后我遍历这个以获取快照中的每首歌曲。您可能可以做类似的事情来创建一个临时播放列表|收藏|任何东西来提供视图。
    猜你喜欢
    • 2021-05-22
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 2017-11-17
    相关资源
    最近更新 更多