【发布时间】:2018-08-25 14:35:40
【问题描述】:
我正在尝试设置一个可以收听多个(私人)流的页面。 不幸的是,我无法让它运行。我已经尝试过Using php to opening live audio stream on android,但由于某种原因,浏览器在加载脚本时卡住了。
请参阅下面的脚本以及工作主机的示例(请参阅http://icecast.omroep.nl/radio4-bb-mp3)
有大神能指教一下吗
Tnx 提前!
$host = "icecast.omroep.nl";
$port = 80;
$sub = "/radio4-bb-mp3";
$sock = fsockopen($host,$port, $errno, $errstr, 30);
if (!$sock){
throw new Exception("$errstr ($errno)");
}
header("Content-type: audio/mpeg");
header("Connection: close");
fputs($sock, "GET $sub HTTP/1\r\n");
fputs($sock, "Host: $host \r\n");
fputs($sock, "Accept: */*\r\n");
fputs($sock, "Icy-MetaData:1\r\n");
fputs($sock, "Connection: close\r\n\r\n");
fpassthru($sock);
fclose($sock);
【问题讨论】:
-
您为什么要这样做?通过 PHP 运行流会产生大量额外开销。为什么不直接重定向到流?
-
@Brad 流每天都在变化,所以我想围绕它构建一些逻辑,以确保允许用户使用流。我想在我的 Sonos 上进行配置,但我不想每天都更改 URL
-
@Brad 我确实可以重定向 URL,但它真的需要那么多开销吗?流媒体的数量不多,所以我不介意它从服务器中占用多少
-
为什么在没有理由的情况下增加复杂性和负载?只需使用 302 重定向。此外,如果您要代理原始文件,则应使用适当的 HTTP 客户端。您在此处的代码完全不符合规范,您将遇到无法运行的服务器。
标签: php fsockopen internet-radio