播放播放列表或按固定链接跟踪未跟踪

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

  • 我但我试图让非技术用户将曲目或播放列表嵌入到页面中。
  • 我有时需要重新生成播放列表
  • 由于这两个原因,玩家需要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 =进行一些操作,但我不清楚是否可以解决这个问题,或者答案只适用于我是否创建了自定义球员。

    再次感谢M.


    有关resolve请参阅SoundCloud的API文档:

    当您只知道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);
    })
    
    链接地址: http://www.djcxy.com/p/65299.html

    上一篇: Play playlist or track by permalink not trackid

    下一篇: Widget API accepts clean friendly URLs