2011-05-24 177 views

回答

5

不,您的HTML5元素只知道流數據,甚至沒有提取適當的元數據請求。

查看這些信息:

現在,這也不是不可能通過任何手段。你只需要做到服務器端。 (特別看第二個鏈接。)

我還應該指出,在一個成熟的SHOUTcast服務器上(沒有使用Icecast進行測試,但它的值得一試)生成「7.html」,其中包含數據監聽器,最大監聽器,峯值監聽器,立體聲/單聲道,比特率和當前曲目名稱的數量作爲逗號分隔值。就像這樣:

2,1,33,625,2,128,J Mascis - Not Enough

如果你可以獲取http://yourstreamingserver:port/7.html,那麼你可以很容易得到這個數據。

+0

問題是實時顯示歌曲名稱與音頻流同步,這是不可能從shoutcast服務器讀取(7.html),實時只能讀取嵌入音頻流中的元信息。我會很高興閱讀javascript/html5的元數據 – 2013-07-20 20:14:27

+1

@JoseNobile,不幸的是,你沒有選擇......至少在兼容性方面沒有。您可以使用其中一種瀏覽器實現的編解碼器,並將一些標頭插入到您的流中以支持CORS,然後處理純JS編解碼器的開銷。對大多數人來說這是不可行的。另外請記住,由於SHOUTcast風格元數據的性質,它無論如何都不完全同步。你也可以通過長輪詢AJAX(如Socket.IO)做一些服務器端的事情。 – Brad 2013-07-20 21:14:20

+0

使用AJAX獲取流是不可能的,由於協議,域和端口的限制。 Shoutcast服務器無法將自定義標題添加爲Access-Control-Allow-Origin:*(使用CORS) 我向Google Chrome論壇http://productforums.google.com/forum/#發送了功能請求!類話題/鉻/給-功能反饋和建議/窗/ AJQl3pwgriI – 2013-07-29 00:36:28

1

如果是Ogg容器流(所以Vorbis和Opus),至少Firefox支持對元數據的JavaScript訪問。這是目前唯一的「特定於供應商的」JavaScript API:audio.mozGetMetadata();

另一方面,如果您使用Icecast 2.4.1,則可以通過JSON API獨立訪問元數據。缺乏其他評論中指出的同步適用。雖然通常「足夠接近」。

相關問題