使用PhantomJS将标记视频替换为img

时间:2015-11-17 15:46:04

标签: javascript phantomjs html5-video

我正在使用PhantomJS 2.0获取某些网页的屏幕截图。因此,在此page中,我有HTML5的标记<video>。但是,我一直在读PhantomJS没有支持它。所以我的想法是将此标记替换为<img>。然后,为此,我需要获取视频内容的大小,创建具有此大小的图像元素并删除视频。

请记住它需要在PhantomJS中。

我试过了,但没有用!

var page = require('webpage').create();
page.open('http://webuser.nl', function(status) {
  if (status !== 'success') {       
    phantom.exit();
  } else {
    page.viewportSize = { width: 1900, height: 1080 }; //these sizes can be others
    page.evaluate(function(){
      var video = document.getElementsByTagName("video")[0];
      var w = video.clientWidth;
      var h = video.clientHeight;
      console.log("size->" + w + "x" + h);

      var img = document.createElement("img");
      img.src = 'background.png';
      img.width = w;
      img.height = h;

      var source = video.getElementsByTagName("source")[0];

      video.removeChild(source);
      video.appendChild(img);     
    });  
    page.render(relative_path);
    phantom.exit(); 
  }
});

在此代码中,使用浏览器中的控制台(Chrome 46.0.24)可以正常工作,我调整窗口的大小,wh更改,但在PhantomJS中,独立于视口,总是相同的大小,我无法将视频替换为图像。

有人知道我该怎么做或有其他想法吗? 谢谢!

0 个答案:

没有答案