我有一个不断填充jpg图像的目录。 我想在网页中像电影一样显示这些图像。
我尝试的是:
function slideit() {
$.get("test.php", function(show) { if(show != "") {
document.getElementById("movie").innerHTML="<img src=\"data:image/jpg;base64," + show + "\" />",
setTimeout('slideit()', 0) } } ); };
PHP文件是
function getrunpic()
{
$file=trim(shell_exec('ls directory | sort -n | grep jpg | head -1'));
$file="directory/".$file;
$imagedata = file_get_contents($file);
$pic = base64_encode($imagedata);
unlink($file);
return $pic;
}
echo getrunpic();
我也尝试过使用JSON编码。
问题是从php到javascript的数据传输时间太长。 (每秒只显示大约8个图片;我需要25个)。
有人有想法让这个过程更快吗?
提前致谢
答案 0 :(得分:2)
这不是要走的路。您应该创建电影服务器端,然后将其流式传输到客户端。这是利用编解码器最基本功能(如压缩,关键帧等)的唯一方法,并且能够保证观众至少有一些一致性。
答案 1 :(得分:1)
我认为这不会是“从php到javascript”的转移 - 它更可能是从服务器转移到引起问题的浏览器。要每秒发出25个单独的HTTP请求,每个请求需要在40毫秒内完成(尽管对于并发浏览器连接和重叠请求,您可能会稍长一些)。
加载yahoo.com的主页并观看Firebug的“Net”面板,过滤后只显示HTTP请求图片,平均请求显示以下时间:
...这意味着你总是很难使用个别请求获得25帧/秒。
您是否考虑过使用流媒体(视频)格式?在tutorials处有一些mediacollege.com以及有关this wikipedia page的更多信息。