首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android上外部显示的屏幕截图?

Android上外部显示的屏幕截图?
EN

Stack Overflow用户
提问于 2014-11-15 00:31:47
回答 1查看 2.8K关注 0票数 8

安卓应用程序,通过Presentation类和相关设施,可以在外部显示器上显示单独的内容(HDMI、MHL、Miracast等)。而不是手机或平板电脑自己的触摸屏(这里我称之为“主显示器”)。

对于主显示器,我们可以使用screencap或DDMS进行屏幕截图。

有没有办法对外部显示进行屏幕截图?

理想情况下,它将是一种类似于screencap/DDMS的解决方案,无需修改应用程序。但是,涉及以某种方式复制表示外部显示的Window内容的解决方案也会很有趣。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-15 01:21:05

没有用于捕获外部显示的OS功能。

主显示器由多个源组成,外部显示也是如此。“屏幕截图”功能实际上只是组合各种源的另一种方式。因为它使用与主显示器相同的参数,所以得到了相同的输出。(请注意,没有出现任何“安全”层,例如DRM保护的视频。)因此,要“捕获”外部显示,您需要一个使用外部显示“层堆栈”而不是主显示的屏幕捕获变体,并且没有API这样做。

(见SurfaceFlinger::captureScreenImplLocked() in SurfaceFlinger.cpp.)

screenrecord命令执行类似的操作:它使用主显示器的层堆栈创建一个虚拟显示,并捕获在那里呈现的任何内容。

就捕获Presentation的输出而言,有几个CTS测试可能会引起人们的兴趣。VirtualDisplayTest创建一个Presentation并用一个ImageReader来捕获它,而EncodeVirtualDisplayTest则通过一个完整的视频编码/解码路径为表示提供信息。测试只需绘制一系列颜色,然后检查以确保颜色可以被读回。这两个版本都需要最新版本的安卓系统(例如,ImageReader直到API 19才存在),而应用程序的有限权限将限制输出到应用程序本身正在呈现的内容。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26941104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档