SoundManager2獲取數據錯誤,我無法看到任何東西?如何使用SoundManager2從SoundCloud進行流式處理,並進行可視化?
或
我無法訪問歌曲,權限被拒絕?
或
它的工作原理,當我第一次玩,但如果我暫停和重新播放,我得到一個數據錯誤?
SoundManager2獲取數據錯誤,我無法看到任何東西?如何使用SoundManager2從SoundCloud進行流式處理,並進行可視化?
或
我無法訪問歌曲,權限被拒絕?
或
它的工作原理,當我第一次玩,但如果我暫停和重新播放,我得到一個數據錯誤?
最近這個問題已經得到解決,因爲這部分是由於所需文件的一半在那裏。現在它已經修復,但它仍然可能不起作用。
明顯的第一步是使用API來獲取軌道stream_url,它看起來像http://api.soundcloud.com/tracks/69322564/stream?client_id=CLIENT_ID
如果您使用本作中的SoundCloud媒體網址,你會發現,你按下播放鍵,如果你有可視化他們將工作,並且一切都很好。但是,如果您現在暫停軌道並再次按播放,您將收到數據錯誤,元數據將停止訪問,並且您的可視化將會中斷。這是因爲api.soundcloud.com
有一個跨域文件,當你訪問它時,你會得到一個3XX重定向到ec-media.soundcloud.com
。這個站點現在也有一個crossdomain.xml文件,但是那個煩人的3XX重定向破壞了這兩個權限,所以你遇到了一個錯誤。
答案就是你首先在soundmanager2之外進行重定向跳躍,這樣就沒有重定向會打斷它。例如在Python中:
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。此網址看起來像http://ec-media.soundcloud.com/2j0lNF81jv9m.128.mp3?LONG_STRING&AWSAccessKeyId=ACCESS_KEY&Expires=1355864871&Signature=SIGNATURE
此域具有crossdomain.xml文件,並且由於沒有重定向,事情將平穩運行,數據將被訪問,一切都會很好。
「我這樣做,它的工作,但現在它說,該文件是被禁止的」
現在,我們提請您注意前面的網址,尤其是&Expires=1355864871
。您被重定向到的文件不是永久性的,所以您需要每次抓取它。對我來說,這很簡單,我在django工作,所以我可以簡單地在我的視圖腳本中運行上面的python。你必須找到一種方法在你選擇的代碼中實現這一點。 (也應該在JavaScript中工作)。
完成這一切後,您應該可以暫停並按需要播放,並檢索波形數據,EQ數據和峯值數據。有了這些,可以做一些有趣的事情。希望這有助於。
嗨Liam,再次感謝您的詳細解釋。你可以接受你自己的答案順便說一句:-) –
不是2天:第 –