在安卓中播放音频流的 PHP 代码不起作用


Php code to play audio streaming in android not work

你好,我需要你的帮助,我需要代码来播放音频流服务我需要的是,当这个人从你的安卓手机下载MP3播放器和声音时,安卓Prederterminado就像它在这个页面中的方式一样 http://s2.viastreaming.net/mobile.php?port=6520 省长服务得很好,但我会对这个代码做同样的事情,但我被告知问题是,如果文件但听起来不是什么如果有人知道这个主题,请问这个问题..我需要你的帮助

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

让我们仔细看看你从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之类的工具来轻松查看流的情况。