1

こんにちは、あなたの助けが必要です。オーディオ ストリーミングを再生するためのコードが必要です。私が必要としているのは、人が Android モバイル ダウンロード mp3 プレーヤーから php ページに入り、このページhttp://s2 にあるように Android prederterminado で音を出すことです。 . _助けてください

<?php 

header("Content-type: audio/mpeg"); 
header("Transfer-Encoding: chunked");
header("Transfer-Encoding: none"); 
header("Connection: close");

$sock = fsockopen($streamname,$port); 

$streamname = "193.17.192.13"; //IP
$port = "80"; // PORT
$path = "/;stream.mp3"; 


fputs($sock, "GET $path HTTP/1.0\r\n");
fputs($sock, "Host: $ip\r\n"); 
fputs($sock, "User-Agent: WinampMPEG/2.8\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);
?> 
4

1 に答える 1

0

PHP スクリプトから返されるデータを詳しく見てみましょう。応答ヘッダー:

HTTP/1.1 200 OK
Date: Fri, 25 Jan 2013 04:19:16 GMT
Server: Apache/2.2.16 (Debian)
X-Powered-By: PHP/5.3.3-7+squeeze8
icy-notice1: <BR>This stream requires <a href="http://www.winamp.com/">Winamp</a><BR>
icy-notice2: SHOUTcast Distributed Network Audio Server/Linux v1.9.8<BR>
icy-name: Atmosfera 96.5 Grupo Emisoras Unidas
icy-genre: Rock
icy-url: http://www.atmosfera.fm
icy-pub: 1
icy-br: 64
Connection: close
Transfer-Encoding: chunked
Content-Type: audio/mpeg

おそらく問題は、ストリームをチャンクエンコーディングで送信していることです。これは、Android の新しいバージョン (>2.3 だと思います) でサポートされていますが、それ以前ではサポートされていません。チャンク エンコーディングは、VLC や Winamp の初期バージョンなど、他の多くのプレーヤーとも互換性がありません。

簡単な解決策は、サーバーが転送エンコードを使用しない HTTP/1.0 応答を返すようにすることです。私はこれをテストしていませんが、Apache を使用しているので、これを試してください:

apache_setenv('force-response-1.0','true');

header()また、 で 2 つの通話を削除しますTransfer-Encoding

これが完了したら、テストして動作するかどうかを確認します。ところで、Wiresharkなどのツールを使用して、ストリームで何が起こっているかを簡単に確認できます。

于 2013-01-25T04:28:48.740 に答える