Soundcloud SDK - 从网址加载跟踪

时间:2016-07-13 23:31:38

标签: javascript sdk soundcloud

所以我通过CodeAcademy here做了关于Soundcloud SDK的教程,并希望从中学到的知识并将其放在Codepen上。但是我想使用与他们在本教程中使用的轨道不同的轨道 - 特别是这首歌https://soundcloud.com/hardwell/coldplay-sky-full-of-stars-hardwell-remix-download

我读到/resolve是一个很好的方法来获取trackid,但它不起作用。我在控制台中得到403 Forbidden

SC.get('/resolve/?url=https://soundcloud.com/hardwell/coldplay-sky-full-of-stars-hardwell-remix-download&client_id=3596a42d6242b9c1ee76740a7771d33a', function(track) {
  console.log(track); // returns null
});

这是我的codepen。请帮我为我的基本SoundCloud SDK音频播放器加载此曲目。感谢

1 个答案:

答案 0 :(得分:1)

您的代码是正确的,甚至适用于某些曲目,例如文档中的曲目。

您遇到的问题我个人应该在他们的文档中加以强调。此轨道的API访问已被禁用(即使已启用窗口小部件),因此您无权使用API​​查询此轨道,并返回403 Forbidden HTTP状态代码。

SoundCloud terms of useLinked Services部分对此进行了描述:

  

您可以随时使用曲目编辑部分中的权限标签为您上传的每种声音限制和限制您的某些内容的可用性,以及平台的其他用户和关联服务的用户,具体取决于以下免责声明部分的规定。

如果在获取跟踪信息时遇到任何类似错误并且取决于成功或失败,您可以签入代码,继续执行正确的操作:

var clientId = 'CLIENT_ID';

SC.initialize({
  client_id: clientId
});

var songUrl = 'https://soundcloud.com/hardwell/coldplay-sky-full-of-stars-hardwell-remix-download';

SC.get('/resolve?url=' + songUrl + '&client_id=' + clientId, function(data, error) {
  if (error === null) {
    console.log('Do something like playing the song.');
  } else {
    console.log('Print an error message?');
  }
});