2015-11-07 162 views
0

我正在使用SoundCloud公共API從具有JavaScript SDK 3.0.0的SC服務器在瀏覽器中播放音頻。在初始化之後,我設法通過SC.Stream方法獲得了具有特定曲目流URL的JSON。如何播放SoundCloud RTMP流?

{ 
    "http_mp3_128_url":"https://cf-media.sndcdn.com/a6QC6Zg3YpKz.128.mp3...」 , 
    "hls_mp3_128_url":"htt...//ec-hls-media.soundcloud.com/playlist/a6QC6Zg3YpKz.128.mp3/...」 , 
    "rtmp_mp3_128_url":"rtmp://ec-rtmp-media.soundcloud.com/mp3:a6QC6Zg3YpKz.128?...", 
    "preview_mp3_128_url":"htt....../ec-preview-media.sndcdn.com/preview/0/90/a6QC6Zg3YpKz.128.mp3?..." 
} 

其中有一個HTTP,一個HLS和一個RTMP URL。我可以處理HTTP,但我無法使RTMP正常工作。有誰知道它是如何決定將播放哪個流?我怎麼操縱這個?或者我如何訪問RTMP流?

幾個星期前,我用WireShark檢查了SoundCloud通過RTMP交付,但現在我似乎無法捕獲任何RTMP流,我不知道如何搜索一個。

+0

你問如何建立一個RTMP流播放器?如果是這樣,這個問題太廣泛了。如果您要求使用非現場資源(例如圖書館)播放RTMP流,那麼這個問題也是無關緊要的。 – JAL

+0

您提到您無法使RTMP正常工作;你能爲此展示代碼嗎?當我們必須猜測你寫的內容時,很難幫助你。 – Mogsdad

回答

0

通常從Flash Media Server,Wowza Media Server和Red5服務器使用RTMP流。 您可以在網頁上播放使用閃光燈對象類型的流,如: enter link description here

或者應用程序 - 你可以用ffplay播放和轉換爲其他類型的流與ffmpeg的

0

我一直在做同樣的事情。它在Dev模式下使用HTTP協議播放,然後恢復爲在正常瀏覽模式下嘗試使用RTMP協議(至少在Chrome中是這樣)。以下是我如何解決問題。 當您使用sc.stream請求時,它將返回要播放的對象。您可以在發送給播放器之前編輯此對象。 例如:

SC.stream('/tracks/'+playr.currentTrack.id).then(function (x) { 

x.options.protocols=["http"]; 

x.play();} 

設置協議對象參數如上強制其使用正確的協議,如果你安慰首先試圖播放非開發模式中的磁道記錄它你會看到它也包含[「rtmp」]協議,然後無法在Chrome中播放。