压缩base64编码的二进制数据

时间:2015-06-20 04:41:01

标签: php http binary compression

我正在为语言学习应用程序的音频文件发出api请求。该请求似乎需要2-3秒才能返回,这对我的需求来说太长了。

我需要以尽可能小的方式从我的php脚本中传回它们。

如何以最快的方式发送二进制数据,例如请求的音频文件?

如果需要代码:

请求:

$.get('testPHP.php/translate_tts?ie=utf-8&tl=zh-CN&q=你好',
    function (returned_data) {
        document.getElementById("audio").innerHTML=
            '<embed src="data:audio/mpeg;base64,'+returned_data+'" hidden="true" autostart="true" loop="false"/>';

PHP:

$params = http_build_query(array("ie" => $_GET['ie'],"tl" => $_GET["tl"], "q" => $_GET["q"]));
$ctx = stream_context_create(array("http"=>array("method"=>"GET","header"=>"Referer: \r\n"))); 
$soundfile = file_get_contents("https://translate.google.com/translate_tts?".$params, false, $ctx); 

header("Content-type: text/plain; charset=utf-8");
header("Content-Transfer-Encoding: binary");
header('Pragma: no-cache');
header('Expires: 0');

echo base64_encode($soundfile);

0 个答案:

没有答案