控制浏览器时间[PhantomJS]

时间:2015-07-30 17:37:46

标签: javascript animation phantomjs

我正在尝试将动画(使用html和javascript完成)渲染到视频中。我想在我的后端做这件事。所以我选择PhantomJS就是出于此目的。我有一个10秒的测试动画。我尝试录制前2秒的动画并将它们转储到png文件中。假设我想每秒生成24帧,持续2秒(即总共48帧)。 我的期望是,如果我将图像文件合并到视频中,我将获得前2秒的动画,但发生的事情是我得到8-10秒的动画,即带有坏的fps。我记录了时间,发现每个渲染时间超过1000/24毫秒。因此浏览器移动得更快,帧被跳过。有没有办法可以停止浏览器时间或回到过去。像
一样的东西 page.goto(t = 041 ms)
渲染();
page.goto(t = 082 ms)
render()
......等等。

以下是我正在使用的代码

    function snap(i){
                if(i<=numFrames){
                    var ctr=10+i;
                    var renderstart = new Date().getTime();
                    page.render("frames/frame"+ctr+".png");
                    var renderend = new Date().getTime();
                    console.log("time taken for rendering single--"+(renderend-renderstart));
                    window.setTimeout(function(){
                        snap(++frameCount);
                    },1);
                }else{
                    var end = new Date().getTime();
                    console.log("Time taken = "+(end-start));
                    phantom.exit();
                }
            }

0 个答案:

没有答案