我想为Windows平台编写一个屏幕录制程序,但不确定如何捕捉屏幕。我所知道的唯一方法是使用GDI,但我想知道是否有其他方法可以达到同样的效果,并且如果有的话,哪种方法的开销最小?速度是首要考虑因素。
这个屏幕录制程序将用于记录游戏画面,但如果这会限制选项,我仍然对任何超出此范围的建议持开放态度。毕竟,没有坏处的知识。
编辑:我看到了这篇文章:各种捕获屏幕的方法。它介绍了使用Windows Media API和DirectX的方法。在结论中提到禁用硬件加速可以大大提高录制应用程序的性能。我想知道为什么会这样。有人可以为我填补这些空白吗?
编辑:我了解到像Camtasia这样的屏幕录制程序使用自己的捕获驱动程序。有人可以详细解释一下它是如何工作的以及为什么更快吗?我可能还需要指导如何实现类似的东西,但我相信已经存在相关的文档。
此外,我现在知道FRAPS如何录制屏幕。它挂钩底层图形API以从后台缓冲区读取。据我所知,这比从前台缓冲区读取要快,因为您正在从系统RAM而不是视频RAM中进行读取。您可以在此处阅读该文章。
MovePlayerLeft()
。同时,您还需要记录按键和其他输入的时间和持续时间。然后,当您处于回放模式时,您只需忽略输入,而是读取记录的数据。如果在数据中看到左键按下,则调用MovePlayerLeft()
。 - Benjamin Lindley