我想制作运行Chromecast设备的接收器应用程序的屏幕截图。 我需要让它在设备上运行,以便一起显示视频和应用程序。
有办法做到这一点吗?
答案 0 :(得分:3)
Ali Naddaf的答案在技术上是正确的,但是通过一些工作,我能够忠实地重建屏幕,以至于它与实际屏幕截图无法区分。
发出以下命令:
html2canvas(document.body,{onrendered:function(canvas){document.write('');}});
这会破坏性地用屏幕截图替换屏幕(我发现这很方便,但如果你愿意,你可以轻松地想到更礼貌的方式)
答案 1 :(得分:2)
我正在将zsolt-szatmari的答案扩展到可以在Chromecast开发人员工具控制台中使用的可复制的脚本:
正如他所说,将http://html2canvas.hertzen.com/build/html2canvas.js代码复制并粘贴到控制台
调用html2canvas方法:它将在DOM中创建一个新的canvas元素:html2canvas(document.body, { onrendered: function(canvas) { document.body.appendChild(canvas); } });
。
获取当前显示在画布中的图像的base64字符串表示形式:document.getElementsByTagName('canvas')[0].toDataURL('image/png');
然后,您将获得一个非常长的base64字符串:如果您点击它,Chrome将在新标签中显示该图片。请注意,由于html2canvas限制,此图片可能远离Chromecast上显示的图片:
屏幕截图基于DOM,因此可能不是100% 准确到真实的表示,因为它没有实际 截图,但根据信息构建屏幕截图 可在页面上找到。
(source)
答案 2 :(得分:1)
不,由于媒体权利和安全等诸多原因,这是不可能的。
答案 3 :(得分:0)
我原以为你可以使用它来将画布捕获到一个图像文件,它通常在带有画布的javascript中运行:
var canvas = document.getElementById("mycanvas");
var img = canvas.toDataURL("image/png");
当然,您需要将此图像文件传输到某处 - 不确定如何从chromecast中获取最后一位。也许这是不可能的。
作为一名Chromecast开发人员,我需要运行应用程序的屏幕截图来向客户展示。我最终做了一种"模拟" chromecast的一部分 - 在javascript中调用一些模型方法来显示数据,然后通过浏览器桌面上的cast url访问我的接收器应用程序。然后我使用屏幕捕获程序来捕获浏览器输出。这给了我与在电视上的chromecast上运行接收器应用程序相同的屏幕截图,这实际上只是一个显示你的html + css + javascript接收器的浏览器。