我需要一个帮助,我正在研究流媒体音频系统,我遇到了分块传输编码的问题,实际上我不知道如何让它在IOS,Android等上运行。有没有替代方案分块编码?这是我的代码:
<?php
header('Transfer-Encoding: chunked');
header('Content-Type:audio/mpeg');
header('Connection: keep-alive');
ob_clean();
flush();
$buffer = '';
$handle = fopen($filepath, 'rb');
if($handle === false){
return false;
}
while(!feof($handle)){
$buffer = fread($handle, 8192);
echo sprintf("%x\r\n", strlen($buffer));
echo $buffer;
echo "\r\n";
ob_flush();
flush();
}
echo sprintf("%x\r\n", 0);
echo "\r\n";
fclose($handle);
?>
感谢您的帮助
答案 0 :(得分:0)
2.3之前的Android不支持自己的播放器的分块编码。其他实施自己客户的玩家也可能遇到问题。我还没有测试iOS。对于许多桌面流式客户端来说,分块编码也存在问题。最好不要使用它来最大化兼容性。
有两种方法可以做到这一点。第一个是返回HTTP/1.0
响应。这意味着您不必指定内容长度,并且当服务器停止发送时响应将停止。
第二种方式与第一种方式类似,但允许您使用HTTP/1.1
。只需设置标题Connection: close
即可。然后,您不必指定内容长度,也不必以分块编码方式发送数据。