如何在chromecast上制作屏幕截图?

如何在chromecast上制作屏幕截图?,chromecast,Chromecast,我想截图的接收器应用程序运行的Chromecast设备。 我需要让它在设备上运行,以同时显示视频和应用程序 有办法做到这一点吗?没有,这是不可能的,因为有很多原因,例如媒体权利和安全性 Ali Naddaf的回答在技术上是正确的,但是通过一点工作,我能够忠实地重建屏幕,以至于它与实际的屏幕截图无法区分 我们将使用html2canvas项目中的代码,请参阅。它将把我们的屏幕渲染成画布。特别是,将编译后的代码从复制粘贴到Chromecast控制台。(向dom添加标记似乎不起作用)您可以通过Chrom

我想截图的接收器应用程序运行的Chromecast设备。 我需要让它在设备上运行,以同时显示视频和应用程序


有办法做到这一点吗?

没有,这是不可能的,因为有很多原因,例如媒体权利和安全性

Ali Naddaf的回答在技术上是正确的,但是通过一点工作,我能够忠实地重建屏幕,以至于它与实际的屏幕截图无法区分

  • 我们将使用html2canvas项目中的代码,请参阅。它将把我们的屏幕渲染成画布。特别是,将编译后的代码从复制粘贴到Chromecast控制台。(向dom添加标记似乎不起作用)您可以通过Chrome访问ip.ad.dr.ss:9222端口来访问Chromecast控制台和开发工具
  • 发出以下命令:

    html2canvas(document.body,{onrendered:function(canvas){document.write(“”);})

    这将破坏性地用截图替换屏幕(我觉得这很方便,但如果你愿意,你可以很容易地想到一种更礼貌的方式)

  • 在elements浏览器中,您将拥有一个img,其中base64 url被指定为src。单击url,chrome将在新选项卡中打开图像。希望这是你想要的截图
  • 您可能会发现由于同一原产地政策等原因,某些图片丢失。javascript除了从html访问图像之外,还有其他特权。如果发生这种情况,请以某种方式解决(例如,对图像使用https),然后转到1
  • 你有你的截图
    我在想,您可以使用它将画布捕获到一个图像文件中,该文件通常在javascript和画布中工作:

    var canvas = document.getElementById("mycanvas");
    var img = canvas.toDataURL("image/png");
    
    当然,您需要将此图像文件传输到某个地方-不确定如何从chromecast中提取最后一位。也许这是不可能的


    作为chromecast开发人员,我需要应用程序运行的屏幕截图来向客户展示。最后,我对chromecast进行了一种“模拟”——用javascript调用一些模型方法来显示数据,然后通过浏览器桌面上的cast url访问我的接收器应用程序。然后,我使用屏幕捕获程序捕获浏览器输出。这给了我与在电视chromecast上运行receiver应用程序相同的屏幕截图,它本质上只是一个显示html+css+javascript接收器的浏览器。

    我将zsolt szatmari的答案扩展为一个可复制的脚本,您可以在chromecast开发者工具控制台中使用:

  • 正如他所说,将代码复制并粘贴到控制台中

  • 调用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% 精确到真实的表示,因为它不会产生实际的 截图,但根据信息构建截图 可在页面上找到


    ()

    谢谢你的回答。