【问题标题】:Chromecast MediaInfo.Builder can't play shoutcastChromecast MediaInfo.Builder 无法播放广播
【发布时间】:2017-10-25 08:21:59
【问题描述】:

我有一个关于 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 用于直播流,或者至少为此提供一些解决方法吗?

谢谢。

【问题讨论】:

    标签: chromecast google-cast shoutcast


    【解决方案1】:

    Brad 的解决方案对我有用。只是在端口后添加了一个斜杠和一个分号。我还将内容类型从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();
    

    【讨论】:

    • 您的内容类型错误。 audio/mpeg 应该是这样。 audio/mp3 无效。
    【解决方案2】:

    使用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 是几个更好的选择之一。

    【讨论】:

    • 我试过了,但解决方案不起作用。也许还必须设置其他东西。你有什么想法吗?
    • @Tom11 可以是任何东西,但在不知道“不工作”的具体含义的情况下,不可能给你一个有用的答案。
    猜你喜欢
    • 2014-10-12
    • 2013-07-25
    • 2014-07-31
    • 2014-09-10
    • 2016-05-03
    • 2013-11-18
    • 2018-01-03
    • 2014-11-13
    • 1970-01-01
    相关资源
    最近更新 更多