首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android: Open PLS-File for MediaPlayer包括相同的流链接,可以打开PLS文件?!错误(1,-2147483648)

Android: Open PLS-File for MediaPlayer包括相同的流链接,可以打开PLS文件?!错误(1,-2147483648)
EN

Stack Overflow用户
提问于 2013-02-24 03:58:21
回答 1查看 1.1K关注 0票数 0

我在一款Android流媒体应用上工作,却遇到了一个奇怪的错误。我的流媒体urls保存在一个数据库中,其中还包括m3u和pls文件。这些文件被解析为流式url,这工作得很好。(我只检查streaming-url是否包含m3u或pls)

现在我才发现,有些链接在MediaPlayer中不起作用。例如:一个站点有以下流链接http://drumstep-aacp.rautemusik.fm,如果我在我的MediaPlayer中打开该链接,它会抛出一个Error (1,-2147483648) (通常不支持的文件格式)。

如果我在浏览器中打开相同的链接,我会被重定向到文件http://drumstep-aacp.rautemusik.fm/listen.pls。(我猜这就是2147483648错误的原因)

因为我已经编写了一个PLS-Parser,所以这不是一个真正的问题,但是PLS-File看起来像

代码语言:javascript
复制
[playlist]
File1=http://drumstep-aacp.rautemusik.fm  //same link I entered at the beginning
Title1=#Musik.DrumStep
Length1=-1
NumberOfEntries=1
Version=2

如果我再次尝试打开流链接,这将开始一个无尽的循环。那么我怎么才能打开那个流呢?(另一个例子是http://jam-aacp.rautemusik.fm)

据我所知,这些例子都是shoutcast链接。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-24 22:40:41

这里的问题归结为请求头。此服务器使用一些巧妙的浏览器和非浏览器检测来帮助确定是否将您重定向到真正的流URL。

如果您使用此标头请求http://jam-aacp.rautemusik.fm/,您将获得.pls文件:

代码语言:javascript
复制
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

现在,如果您请求相同的URL而没有这个头,您将得到一个302重定向到http://80.237.157.12:12005/上的实际流URL。

此服务器在80.237.157.12:12005上运行的是SHOUTcast,它有自己的检测功能。它使用的是User-Agent,而不是Accept头。如果用户代理字符串包含"Mozilla",则服务器将向您发送管理界面。否则,它将向您发送流数据。

简而言之,您需要在没有Accept头的情况下发出请求,并且使用不包含MozillaUser-Agent。顺便说一句,您可以很容易地自己弄清楚这一点,并通过下载Fiddler副本来重现问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15044958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档