3

Shoutcastサーバーは有効なHTTPリソースを生成しません。モバイルプレーヤーリンク(Android)には、有効なHTTPリソースが必要です。shoutcastストリームにphpスクリプトを使用するにはどうすればよいですか?このスクリプトは有効な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

「ブラッド」の指示に従って、すべてが正常になりました。set_time_limit(0)を使用しますが、それでも3分から5分後にストリームが閉じられましたか?直し方?親切に私を助けてください..:)

4

1 に答える 1

0

はい、あなたが持っているものは有効です。

SHOUTcastストリームの無効な部分は、応答ではICY 200 OKなく返されることです。HTTP/1.0 200 OKSHOUTcastリクエストをプロキシするようにスクリプトを変更する場合は、通常のTCP接続(を参照fsockopen())を介してSHOUTcastサーバーに接続し、生のリクエストデータを送信する必要があります。

接続してデータを受信したら、このデータをクライアントにエコーアウトします。

set_time_limit(0)また、スクリプトが30秒ほどでタイムアウトしないように呼び出す必要があることにも注意してください。また、ヘッダーを送信しないようにし、データをチャンクとして送信する必要がないようにContent-Length応答を設定します。HTTP/1.0(チャンクエンコーディングの再生は、Android 2.3以降でのみ機能します。)

最後に、PHPを使用して何かをハッキングするのが面倒な場合は、Androidの組み込みオーディオプレーヤーで正常に機能する、テストに利用できるストリームホスティングサービスを利用できます。

于 2012-11-24T18:24:52.223 に答える