我正在为语言学习应用程序的音频文件发出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);