Soundcloud API .getSounds 仅 returns 前 5 个对象

Soundcloud API .getSounds only returns the first 5 objects

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

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

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

this is how the returned array looks like

我可以用不同的播放列表重现问题。我只得到前 5 首歌曲的正确信息。

有没有人知道如何解决这个问题? I set up a codepen for this 谢谢。

看起来数据都是有效的 - 资源类型:声音,类型:曲目 - 但看起来 API 没有 return 中每首歌曲的完整信息集超过第五个的播放列表。它只是 return 前 5 首歌曲的艺术作品 URL 和扩展信息,但我相信其余歌曲仍可通过其 ID 访问。如果您需要额外的信息,您可能需要查询 SoundCloud API 以获取超出第五索引(如果长度 > 5)的每首特定歌曲,这可能 return 每首歌曲的完整信息。但是,您必须使用此方法进行多次查询

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

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