0

我正在用自制的 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=2

PHP 将请求重定向到http://132.241.56.35:8004但没有听到任何内容。通过在浏览器中打开它来测试它的存在,它是一个 HTML 页面,一个 SHOUTcast DNAS 状态页面。例如,在 winamp 中打开它时,它会播放流。我错过了什么吗?

有些重定向直接在flashplayer中播放,看来我的方法还可以。

我必须做些什么才能使其正常运行?为什么假设是流的链接是 HTML 页面?

4

1 回答 1

2

SHOUTcast 服务器检查您的用户代理字符串以查看它是否是浏览器。这样做的原因是,当您使用浏览器访问 SHOUTcast 服务器的 URL 时,您会得到管理页面。它通过检查单词Mozilla是否在字符串中来进行检测。

由于您的 Flash 播放器将使用浏览器的用户代理字符串,因此 SHOUTcast 服务器向您发送管理控制台而不是流。

;您可以通过在请求路径的末尾附加分号来轻松覆盖此行为。

http://132.241.56.35:8004/;

这会强制 SHOUTcast 服务器忽略您的用户代理字符串并改用MPEG OVERRIDE它,它不包含Mozilla并假定为音频播放器。

于 2013-04-09T14:12:25.343 回答