我正在用自制的flashplayer播放一些SHOUTcast电台。因为flashplayer本身不理解pls文件,所以我用PHP创建了一个pls阅读器,它打开并读取pls文件,并重定向到pls文件中列出的文件/链接。(我只请求mpeg/音频流)。
flashplayer对此文件的请求(在同一个域上),并将被定向到此pls文件中列出的流。
例如,当在PHP中‘打开’pls文件时,这给出了例如以下信息(通过http://yp.shoutcast.com/sbin/tunein-station.pls?id=<someid>):
[playlist]
numberofentries=1
File1=http://132.241.56.35:8004
Title1=(#1 - 0/10) KCSC.ASChico.com - 24Kbps MP3
Length1=-1
Version=2PHP将请求重定向到http://132.241.56.35:8004,但没有收到任何消息。通过在浏览器中打开它来测试它是否存在,它就是一个HTML页面,一个SHOUTcast D.N.A.S.状态页面。例如,当在winamp中打开它时,它会播放流。我是不是错过了什么?
一些重定向直接在flashplayer中播放,所以我的方法似乎是可以的。
我必须做些什么才能让它正常运行?为什么假设是流的链接是HTML页面?
发布于 2013-04-09 22:12:25
SHOUTcast服务器检查您的用户代理字符串,以确定它是否是浏览器。这样做的原因是,当您使用浏览器转到SHOUTcast服务器的URL时,您会看到管理页面。它通过检查单词Mozilla是否在字符串中来进行此检测。
由于Flash player将使用浏览器的用户代理字符串,因此SHOUTcast服务器将向您发送管理控制台而不是流。
您可以通过将分号;附加到所请求路径的末尾来轻松覆盖此行为。
http://132.241.56.35:8004/;这会强制SHOUTcast服务器忽略您的用户代理字符串,转而使用MPEG OVERRIDE,它不包含Mozilla,并且假定它是一个音频播放器。
https://stackoverflow.com/questions/15880702
复制相似问题