图片说明了什么getDisplayMedia()呢

我想向用户展示使用Java的所有当前打开的应用程序/窗口(如alt + tab的窗口)。在javaScript中,我们可以通过Media Devices接口执行此操作getDisplayMedia()。我想使用Java实现类似的功能。有什么办法可以使用JNA或其他方法做到这一点。
我一直在尝试构建一个屏幕录像机来练习我萎缩的Java技能(即使已经有太多了).
然而,我遇到了机器人类的速度非常慢的问题 - 即使在我的i7驱动的机器上也可能大约15fps,并且在我的macbook上爬行4-5fps.我用Python构建了一个工作记录器,通过使用PIL抓取快照,至少能够达到可靠的20-24fps.
所以,我很好奇,班级这么慢的技术原因是什么?
此外,其他屏幕录像机如何工作?Screencast-o-matic是Java,似乎表现良好.我假设有一些方法可以连接底层操作系统,并从缓冲区或其他东西中删除所有东西?我认为必须有一些非常快速的方法来获取屏幕上绘制内容的副本 - 毕竟,操作系统足够快,可以在进行多次其他计算之后多次绘制屏幕!似乎从一个地方到另一个地方复制一系列颜色应该是一个相对便宜的操作.
我决心不放弃!我只是不知道我需要知道什么才能真正深入了解建造一个合适的录音机.
上述解决方案使用DWM显示活动窗口的缩略图.如果我理解正确,它的工作原理是让你指定要查看的应用程序的窗口句柄,然后让你在窗口上提供一个窗口句柄和一个位置,窗口应该绘制目标窗口的内容.
有没有办法将窗口屏幕直接渲染到BitmapImage或Image,而不是直接在窗口的某处绘制?(基本上只是抓住窗口的屏幕截图 - 即使它被另一个窗口覆盖 - 没有使用更新缩略图.)
谢谢你的帮助!