2017-05-24 52 views
0

我有一個關於Google Cast的MediaInfo.Builder的問題。我使用了以下代碼:Chromecast MediaInfo.Builder無法播放shoutcast

MediaInfo mediaInfo = new MediaInfo.Builder("http://shoutcast2.index.uz.zgora.pl:8000") 
       .setStreamType(MediaInfo.STREAM_TYPE_LIVE) 
       .setContentType("audio/mpeg") 
       .build(); 

但是演員根本不工作。原因是,該URL導致SHOUTCAST。顯然,問題出在內容類型上。有人可能會建議哪些contentType用於shoutcast流,或者至少提供一些解決方法嗎?

謝謝。

回答

1

而不是http://shoutcast2.index.uz.zgora.pl:8000/,請使用http://shoutcast2.index.uz.zgora.pl:8000/;。注意結尾的分號。

SHOUTcast服務器將在User-Agent請求標頭中尋找Mozilla,作爲檢測瀏覽器與媒體播放器的一種方式。如果服務器認爲客戶端是瀏覽器,它將發送管理頁面而不是流。通過在請求URI中傳遞;,SHOUTcast服務器將使用MPEG OVERRIDE的用戶代理字符串,並將發送實際的流數據。

你應該知道SHOUTcast並不是真正的HTTP兼容。它足夠接近它可能會工作,但可能在未來停止工作。 Icecast是幾個更好的選擇之一。

+0

我試過這個,解決方案不工作。也許還需要設置其他的東西。你有什麼想法? – Tom11

+0

@ Tom11可以是任何東西,但不知道「不工作」是什麼意思的具體細節,不可能給你一個有用的答案。 – Brad

0

布拉德的解決方案爲我工作。在端口後添加了斜線和分號。我還將內容類型從audio/mpeg更改爲audio/mp3。我的工作代碼看起來像這樣。

MediaInfo mediaInfo = new MediaInfo.Builder("http://shoutcast2.index.uz.zgora.pl:8000/;") 
       .setStreamType(MediaInfo.STREAM_TYPE_LIVE) 
       .setContentType("audio/mp3") 
       .build(); 
+0

您的內容類型錯誤。 'audio/mpeg'就是它應該是的。 'audio/mp3'無效。 – Brad