2

そこで、PHP の fOpen 関数を試してみて、サウンド ファイルの読み取りに多くの成功を収めました。今、私はシャウトキャスト ストリーム用の一種の「リレー」を作成しようとしています。

データが連続しているため、File_get_contents はおそらくこれを行う最も貧弱な方法です。

PHPソケットを使用すると、より良い結果が得られますか?

Tl;dr オーディオ/mpeg データの連続ストリームを出力する最良の方法は何ですか?

4

1 に答える 1

0

過去に PHP と SHOUTcast ストリームでこれを行いました。確かに可能ですが、すべての PHP インスタンスが SHOUTcast サーバーに個別に接続することに注意してください。PHP Web ホスティングを使用している場合、これらのサーバーは通常、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 に答える