gpt4 book ai didi

php - 直播音频流有效 HTTP 资源

转载 作者:搜寻专家 更新时间:2023-10-31 22:10:26 25 4
gpt4 key购买 nike

Shoutcast 服务器未生成有效的 HTTP 资源。我们的移动播放器链接 (Android) 需要有效的 HTTP 资源。我如何将 php 脚本用于 shoutcast 流?此脚本提供有效的 http 资源?有谁知道吗?

<?php

$track = "shoutcaststream.mp3";

if (file_exists($track)) {
header("Content-Type: audio/mpeg");
header('Content-Length: ' . filesize($track));
header('Content-Disposition: inline; filename="shoutcaststream.mp3"');
header('X-Pad: avoid browser bug');
header('Cache-Control: no-cache');
readfile($track);
exit;
} else {
header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found', true, 404);
echo "no file";
}

更新 2

现在一切正常,按照“Brad”的指示。我们使用 set_time_limit(0) 但我的流仍然在 3 分钟到 5 分钟后关闭?怎么修?请帮助我.. :)

最佳答案

是的,你所拥有的是有效的。

关于 SHOUTcast 流的无效部分是它们在响应中返回 ICY 200 OK 而不是 HTTP/1.0 200 OK。如果您希望更改脚本以代理 SHOUTcast 请求,您可能需要通过普通 TCP 连接(请参阅 fsockopen())连接到您的 SHOUTcast 服务器,并发送原始请求数据。

建立连接并接收数据后,将此数据回显给您的客户端。

另请注意,您需要调用 set_time_limit(0),这样您的脚本就不会在 30 秒左右超时。还要确保不发送 Content-Length header ,并将您的响应设置为 HTTP/1.0,这样您就不必分块发送数据。 (分块编码播放仅适用于 Android 2.3 或更高版本。)

最后,如果您发现使用 PHP 进行黑客攻击太麻烦了,我有一个 stream hosting service available for testing这完全符合您的要求,适用于 Android 上的内置音频播放器。

关于php - 直播音频流有效 HTTP 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13542534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com