Soundcloud SDK - 从网址加载轨道

Soundcloud SDK - load track from url

本文关键字:加载 轨道 SDK Soundcloud      更新时间:2023-09-26

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

我读到/resolve是获取跟踪ID的好方法,但它不起作用。我在控制台中得到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
});

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

您的代码是正确的,甚至可以处理某些轨道,例如文档中的轨道。

您遇到了一个我个人发现的问题,应该在他们的文档中强调。此轨道的 API 访问已被禁用(即使启用了小组件),因此您无权使用 API 查询此轨道,并且它返回 403 禁止访问 HTTP 状态代码。

这在 SoundCloud 使用条款的Linked 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?');
  }
});