当我尝试在Soundcloud上嵌入我的私人音轨时,它会返回404。
我使用的代码是:
<audio src=http://api.soundcloud.com/tracks/########/stream?client_id=####" preload="auto"></audio>
有谁知道如何解决这个问题? (我知道SC提供的iframe嵌入方法,但这是一个不行,设计明智(太大和丑陋))
答案 0 :(得分:0)
要共享私人曲目,您必须使用URL传递秘密令牌,您可以在网站上的共享对话框中找到它。所以你的URL看起来像是:
<audio src=http://api.soundcloud.com/tracks/########/stream?client_id=####&secret_token=#-#####" preload="auto"></audio
请注意添加&secret_token=#-#####
。
答案 1 :(得分:0)
您认为将密钥放在html源代码中是个好主意吗?
答案 2 :(得分:0)
访问任何SoundCloud轨道的流将重定向到ec-media.soundcloud.com
上托管的mp3源。一种可能的解决方案是将实际的mp3链接嵌入到音频标签中。
拨打电话:
https://api.soundcloud.com/i1/tracks/{track_id}/streams?client_id={api_key}&secret_token=#-#####
应该产生这样的东西:
{
hls_mp3_128_url: "https://ec-hls-media.soundcloud.com/playlist/{long-hash-key}",
rtmp_mp3_128_url: "rtmp://ec-rtmp-media.soundcloud.com/mp3{long-hash-key}",
preview_mp3_128_url: "https://ec-preview-media.sndcdn.com/preview/0/30/{long-hash-key}"
}
每个SoundCloud轨道不仅有一个stream
子资源,还有一个显示其可用流的i1
资源。到目前为止,我只看过RTMP,HTTPS和HLS。从那里,您可以使用支持您的用例的任何链接。
可能有用的node.js包:i1-soundcloud