如何使用SoundManager2从SoundCloud流式传输并进行可视化



SoundManager2出现数据错误,我无法可视化任何内容?

我无法访问歌曲,权限被拒绝?

当我第一次播放时它是有效的,但如果我暂停它并再次播放,我会出现数据错误吗?

这一问题最近得到了修复,部分原因是那里有一半所需的文件。然而,现在它已经修复,可能仍然无法立即运行。

显而易见的第一步是使用api获取trackstream_url,它看起来像http://api.soundcloud.com/tracks/69322564/stream?client_id=CLIENT_ID

如果你在SoundCloud中将其用作媒体url,你会发现你按下了播放键,如果你有可视化效果,它们就会起作用,一切都很好。但是,如果您现在暂停曲目,然后再次按下播放键,则会出现数据错误,元数据将无法访问,可视化效果也将中断。这是因为api.soundcloud.com有一个跨域文件,当你访问它时,你会得到一个3XX重定向到ec-media.soundcloud.com。这个网站现在也有一个crossdomain.xml文件,但是讨厌的3XX重定向破坏了这两个权限,所以你遇到了一个错误。

答案是,在soundmanager2之外,你首先进行重定向跳跃,这样就不会有重定向破坏它

import urllib2
starturl = 'http://api.soundcloud.com/tracks/69322564/stream?client_id=CLIENT_ID'
res = urllib2.urlopen(starturl)
finalurl = res.geturl()
print finalurl

这可能更优雅,但它会打印api重定向到的url。这个url看起来像http://ec-media.soundcloud.com/2j0lNF81jv9m.128.mp3?LONG_STRING&AWSAccessKeyId=ACCESS_KEY&Expires=1355864871&Signature=SIGNATURE

这个域有crossdomain.xml文件,由于没有重定向,事情会顺利运行,数据会被访问,一切都会很好。

"我这样做了,它起了作用,但现在它说该文件是被禁止的">

现在我们提请您注意以前的url,特别是&Expires=1355864871。重定向到的文件不是永久性的,所以每次都需要抓取它。对我来说,这很容易,我在django中工作,所以我可以在我的视图脚本中简单地运行上面的python。您必须找到一种方法来在您选择的代码中实现这一点。(也应该使用javascript)。

完成所有这些之后,您应该能够暂停并播放您想要的内容,并检索波形数据、EQ数据和峰值数据。有了这些东西,可以做一些有趣的事情。希望这能有所帮助。

最新更新