不幸的是,/oembed
目前仅适用于常规小部件(Flash 的 HTML5)。
但是,您可以自己为其中任何一个构建 html。这是嵌入小部件的模板:
<object height="18" width="100%">
<param name="movie" value="https://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F{trackId}&player_type=tiny{widgetParams}"></param>
<param name="allowscriptaccess" value="always"></param>
<param name="wmode" value="transparent"></param>
<embed wmode="transparent" allowscriptaccess="always" height="18" width="100%" src="https://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F{trackId}&player_type=tiny{widgetParams}"></embed>
</object>
以及常规小部件的模板:
<iframe width="100%" height="166" scrolling="no" frameborder="no" src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F{trackId}{widgetParams}"></iframe>
您应该将它们放入字符串(没有换行符)并在这些字符串上执行变量插值。我不确定你使用的是什么语言,但大多数语言都内置了这个。
对于我大部分时间都在编写的 JavaScript,您可以使用 Douglas Crockford 的supplant
function。
变量trackId
的值应该是正整数widgetParams
,而值应该是类似的&color=ff6600&auto_play=false
,即以 为key=value
前缀的对&
。在我的示例中,我使用{
and}
作为变量的分隔符以进行插值,但它当然可以是您的语言或模板引擎要求的任何内容。
为了让您的客户能够只为您提供跟踪 URL,您需要向/resolve
端点发出 API 请求以从跟踪 URL(永久链接)中检索跟踪 ID。您需要注册为开发人员client_id
才能授权对 API 的请求。我已经在此处的另一个答案中描述了如何在 JavaScript 中执行此操作。
如果您不想向 API 发出请求,您还可以要求您的客户提供嵌入代码,他们可以通过点击“共享”按钮从 SoundCloud 上的任何声音或设置中轻松检索,然后提取声音或设置ID 使用正则表达式。
这是一个如何插入小部件的示例(也使用 SoundCloud JS SDK)http://jsbin.com/OLUloX/1/edit