Soundcloud API .getSounds仅返回前5个对象

时间:2018-01-31 20:05:41

标签: javascript soundcloud

我正在使用HTML5 Widget Api获取包含14首歌曲的SoundCloud播放列表,并将有关每首歌曲的信息存储在一个数组中。 我使用.getSounds方法如下:

  function loadTracks(){
    myPlayer.player.getSounds(function(ret){
      myPlayer.playlistInfo = ret;
    });
  }

它正确返回一个有14个点的数组。前5个点包含我想要的内容,但最后9个有不同的信息似乎与歌曲无关。

this is how the returned array looks like

我可以使用不同的播放列表重新创建问题。我只收到前5首歌的正确信息。

有没有人对如何解决这个问题有所了解? I set up a codepen for this 感谢。

2 个答案:

答案 0 :(得分:0)

看起来数据全部有效 - 资源类型:声音,类型:跟踪 - 但看起来API没有为第五个播放列表中的每首歌曲返回完整的信息集。它只返回前5个的艺术品URL和扩展信息,但我相信其余的歌曲仍然可以通过他们的id访问。如果您需要额外的信息,您可能需要查询SoundCloud API以查找第五个索引之外的每个特定歌曲(如果长度> 5),这可能会返回每首歌曲的完整信息。您必须使用此方法执行许多查询,但

答案 1 :(得分:0)

我正在努力解决同样的问题。对我来说,看起来SC.Widget.Events.READY有时会在Widget完全准备好之前触发。

一个安全的解决方案是循环一个函数并检查数组的完整性,直到你需要的所有数据都存在。在Code Pen的示例中,我每隔200毫秒检查一次所有标题的数组,并在成功时突破循环。