2

所以我一直在尝试使用 PHP 的 fOpen 函数,并且在读取声音文件方面取得了很大的成功。现在,我正在尝试为广播流创建一种“中继”。

File_get_contents 可能是最糟糕的方法,因为数据是连续的。

使用 php 套接字会产生更好的结果吗?

Tl; dr 输出连续音频/mpeg 数据流的最佳方式是什么?

4

1 回答 1

0

我过去曾使用 PHP 和 SHOUTcast 流完成此操作。这当然是可能的,但请记住,您的所有 PHP 实例都将与您的 SHOUTcast 服务器建立单独的连接。如果您使用任何 PHP 网络托管,这些服务器通常配置为运行 PHP 脚本超过几分钟是不可能的。为此,您需要自己的 VPS 服务器(或合作托管服务提供商)。

您是正确的,因为您将无法使用file_get_contents()它。根据您的 cURL 版本,您可能会使用它连接到 SHOUTcast 服务器。 http://php.net/manual/en/book.curl.php 问题通常是 SHOUTcast 服务器在其响应中的状态行ICY 200 OK不是HTTP/1.0 200 OK,某些 HTTP 客户端会遇到问题。如果 cURL 确实适合您,请检查使用带有回调函数的 CURLOPT_WRITEFUNCTION 以在数据进入时将数据回显到客户端。

如果 cURL 不起作用,您将需要使用fsockopen() http://www.php.net/manual/en/function.fsockopen.php连接到服务器并自己处理 HTTP 响应。

从那里,您所要做的就是在数据进入时将数据回显给客户端。

于 2013-09-05T17:34:25.220 回答