【问题标题】:Play playlist or track by permalink not trackid通过固定链接播放播放列表或曲目而不是 trackid
【发布时间】:2013-10-21 12:29:33
【问题描述】:

我有一个通过 trackId 工作的嵌入式播放器,但是:

  1. 我正在尝试让非技术用户将曲目或播放列表嵌入到页面中。
  2. 我有时需要重新生成播放列表

由于这两个原因,播放器需要 trackId 很不方便。有什么办法可以关闭永久链接?

谢谢, 马丁。

PS。我当前的 iframe 代码如下所示:

src="https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Fplaylists%2F$paramPlaylistID"

这个 iFrame 代码(来自评论 #1)不起作用:

src="https://w.soundcloud.com/player/?url=http://api.soundcloud.com/resolve.json?url=http%3A%2F%2Fapi.soundcloud.com%2Fplaylists %2F$paramPermalink"

我可以使用更好的东西吗?我知道我可能需要对 url=...url= 做一些事情,但我不清楚 resolve 是否适用于该播放器,或者答案是否仅适用于我制作了自定义播放器的情况。

再次感谢,M。

【问题讨论】:

    标签: javascript soundcloud


    【解决方案1】:

    SoundCloud's API docs on resolve:

    当您只知道 SoundCloud.com URL 时,解析资源允许您查找和访问 API 资源。

    $ curl -v 'http://api.soundcloud.com/resolve.json?url=http://soundcloud.com/matas/hobnotropic&client_id=YOUR_CLIENT_ID'
    
    < HTTP/1.1 302 Moved Temporarily
    < Location: http://api.soundcloud.com/tracks/49931.json
    

    此请求将解析并重定向到轨道 http://soundcloud.com/matas/hobnotropic 的 API 资源 URL。只需按照重定向,您将获得所需的表示。解析器支持以下 URL:

    • 用户
    • 曲目
    • 播放列表(集)
    • 群组
    • 应用程序

    您可以从用户那里获取永久链接并获取曲目或播放列表 ID,如下所示:

    function getSoundCloudId(permalink, callback) {
      var resolve = 'http://api.soundcloud.com/resolve.json?client_id=YOUR_CLIENT_ID&url=';
      var request = new XMLHttpRequest();
      request.onreadystatechange = function(){
        if (this.readyState === 4 && this.responseText) {
          var response = JSON.parse(this.responseText);
          if (response.id) callback(response.id);
        }
      };
      request.open('get', resolve+permalink, true);
      request.send();
    }
    

    然后你像这样使用它:

    getSoundCloudId('https://soundcloud.com/matas/sets/library-project', function(id){
      // Do stuff with the ID
      console.log(id);
    })
    

    【讨论】:

    • 好的,所以我已经移动了上面的 iframe 代码,因为我在这个框中太有限了。我只想说在这种情况下我并没有真正使用 API,只是 iFrame 中的嵌入式播放器。这仍然可行吗?你能给我一个例子吗?非常感谢。 M.
    • 谢谢@idbehold - 那么,这可以与 w.soundcloud.com/player 一起使用吗?
    • @MartinCleaver 我为你创建了一个fiddle。粘贴到播放列表/设置永久链接中,然后单击“获取嵌入代码”以查看它的实际效果。
    • 谢谢,非常感谢!看起来不错 - 现在只等我的同事测试它。贝斯特,M.
    • @idebehold - 实际上我们在stackoverflow.com/questions/19440040/… 上还有一个问题 - 谢谢,M.
    猜你喜欢
    • 1970-01-01
    • 2023-03-08
    • 2011-02-26
    • 2019-12-23
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 2021-01-17
    • 2021-03-04
    相关资源
    最近更新 更多