Chromecast MediaInfo.Builder无法播放shoutcast

时间:2017-05-24 20:16:28

标签: chromecast google-cast shoutcast

我对Google Cast的MediaInfo.Builder有一个问题。我使用了以下代码:

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

但是Cast玩家根本不工作。原因是,该URL导致SHOUTCAST。显然,问题出在内容类型上。有人可以建议哪些contentType用于shoutcast流,或者至少为此提供一些解决方法?

谢谢。

2 个答案:

答案 0 :(得分:1)

而不是http://shoutcast2.index.uz.zgora.pl:8000/,请使用http://shoutcast2.index.uz.zgora.pl:8000/;。请注意末尾的分号。

SHOUTcast服务器将在Mozilla请求标头中查找User-Agent,作为检测浏览器与媒体播放器的方式。如果服务器认为客户端是浏览器,它将发送管理页面而不是流。通过在请求URI中传递;,SHOUTcast服务器将使用MPEG OVERRIDE的用户代理字符串,并将发送实际的流数据。

您还应该知道SHOUTcast并不真正与HTTP兼容。它足够接近它可能会起作用,但可能在将来停止工作。 Icecast是几种更好的选择之一。

答案 1 :(得分: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();