2013-01-24 440 views
1

你好,我需要你的幫助我需要的代碼來播放音頻流服務我需要的是,當人從你的Android手機下載MP3播放器和聲音在android prederterminado在這個頁面的方式http://s2.viastreaming.net/mobile.php?port=6520 prefectamente服務良好,但我會做同樣的代碼這樣的作品,但我被告知,問題是,如果文件,但沒有聽起來什麼問題,請如果有人知道這個問題..我需要請您的幫助在Android中播放音頻流的PHP代碼不工作

<?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); 
?> 

回答

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'); 

而且,與Transfer-Encoding刪除你的兩個header()電話。

一旦完成,測試,看看它是否工作。順便說一下,您可以使用諸如Wireshark之類的工具輕鬆查看您的數據流發生了什麼。