【问题标题】:JSON - Using oembed dynamically with soundcloudJSON - 通过 soundcloud 动态使用 oembed
【发布时间】:2013-04-16 00:09:57
【问题描述】:

我希望能够使用 oembed with json 不断获取用户的最后 10 首曲目。

$.getJSON("http://soundcloud.com/oembed", 
          {url: "https://soundcloud.com/aviciiofficial", format: "json"},
function(data)
{
    console.log(data.html);
})

Data.html 返回 soundcloud 播放器的 html 代码,但此播放器包含一个包含所有用户曲目的曲目集。我希望能够单独获取曲目(例如:data[0].html)。如何获取所有最新曲目的数组?

控制台输出:

<iframe width="100%" height="450" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Fusers%2F1861068"></iframe>

谢谢!

【问题讨论】:

  • 你能举一个 JSON 响应的例子吗?
  • 嗨,迈克,我可以在 Chrome 检查器中的哪里获得这些信息?
  • 在控制台中,我从这一行获取 iframe 代码:console.log(data.html);
  • 如果只是iframe代码,怎么知道data中存在你要的数据呢?您可以在问题中显示data 的控制台日志输出,这可能会有所帮助。
  • 好的,我用 console.log(data.html) 的控制台输出编辑了我的问题。但我不明白你的问题。 html 属性返回一个 iframe 代码,但它返回一组玩家的 iframe 代码,而不是所有单独的玩家。我的问题是如何获得个人玩家。

标签: jquery ajax json soundcloud oembed


【解决方案1】:

您需要做的是发出一个 API 请求来检索用户的曲目,没有oembed 端点会返回嵌入列表。

UPD

因此,为了显示艺术品小部件,您需要遍历数组,并将 API_URL 和 COLOR 替换为每个项目的 API url 和您想要的颜色(也许您实际上可以为所有这些小部件设置一次颜色) .

'<object height="300" width="300">' + 
  '<param name="movie" value="https://player.soundcloud.com/player.swf?url={{API_URL}}&amp;color={{COLOR}}&amp;auto_play=false&amp;player_type=artwork">' +      
  '</param>' +
  '<param name="allowscriptaccess" value="always"></param>' +
  '<embed allowscriptaccess="always" width="300" height="300" ' + 
    'src="https://player.soundcloud.com/player.swf?url={{API_URL}}&amp;color={{COLOR}}&amp;auto_play=false&amp;player_type=artwork" ' +
    'type="application/x-shockwave-flash">' + 
  '</embed>' + 
'</object>';

我之前在以下答案中对此进行了描述 - Retrieve Soundcloud search results and embed results,仅在 HTML5 小部件的上下文中。

【讨论】:

  • 感谢您的回答 Gryzzly!我将使用 API 来代替。但是我想知道如果我们无法获取多个嵌入,那么使用 oembed 有什么意义?这和手动从播放器获取嵌入代码不一样吗?
  • oembed 提供 HTML 字符串,API 没有。对于某些人来说,这更容易。
  • 我也想检索用户的曲目,但我不想检索已登录用户的曲目。例如,我想要一个某人的曲目列表,而无需他进行身份验证。这可能吗?
  • 当然,如果他们的声音是公开的
  • 不,oembed 仅适用于 HTML5 小部件,请查看答案的更新以了解如何做您愿意做的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多