gpt4 book ai didi

android - Android 上外接显示器的屏幕截图?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:23:15 25 4
gpt4 key购买 nike

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

对于主显示,我们可以使用screencap或者DDMS来截屏。

有没有办法做外接显示器的截图?

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

最佳答案

没有用于捕获外部显示器的操作系统功能。

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

(参见 SurfaceFlinger.cpp 中的 SurfaceFlinger::captureScreenImplLocked()。)

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

就捕获 Presentation 的输出而言,有几个可能感兴趣的 CTS 测试。 VirtualDisplayTest创建一个 Presentation 并使用 ImageReader 捕获它, 而 EncodeVirtualDisplayTest通过完整的视频编码/解码路径提供演示文稿。测试只是绘制一系列颜色,然后检查以确保可以读回这些颜色。这两者都需要最新版本的 Android(例如 ImageReader 直到 API 19 才存在),并且应用的有限权限会将输出限制为应用本身呈现的内容。

关于android - Android 上外接显示器的屏幕截图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26941104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com