我正在使用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 感谢。
答案 0 :(得分:0)
看起来数据全部有效 - 资源类型:声音,类型:跟踪 - 但看起来API没有为第五个播放列表中的每首歌曲返回完整的信息集。它只返回前5个的艺术品URL和扩展信息,但我相信其余的歌曲仍然可以通过他们的id访问。如果您需要额外的信息,您可能需要查询SoundCloud API以查找第五个索引之外的每个特定歌曲(如果长度> 5),这可能会返回每首歌曲的完整信息。您必须使用此方法执行许多查询,但
答案 1 :(得分:0)
我正在努力解决同样的问题。对我来说,看起来SC.Widget.Events.READY
有时会在Widget完全准备好之前触发。
一个安全的解决方案是循环一个函数并检查数组的完整性,直到你需要的所有数据都存在。在Code Pen的示例中,我每隔200毫秒检查一次所有标题的数组,并在成功时突破循环。