我正在开发一个屏幕录制应用程序,我可以捕获屏幕但没有鼠标光标。我使用了 DXGI、SharpDX 和 Media Foundation。
我的问题是。是否可以将鼠标光标写入图像缓冲区,以便我发送到 mediafoundation 的图像缓冲区在编码为视频之前已经有鼠标光标?在这里看到很多示例如何在屏幕截图中包含鼠标光标,但他们所做的是将两个图像都转换为位图,然后将两者结合起来。我已经试过了,但是性能不好,cpu使用率很高,fps也很低。没有光标,我可以流畅地捕捉 60fps。提前致谢
可以实现您的任务,但它需要从 C# 上的 C++ 复制一些代码。在我的项目Desktop Screen Capture on Windows via Windows Desktop Duplication API with Drawing of Cursor's Image中,您可以找到合适的解决方案。它基于使用特殊的 Direct3D11 纹理 - 它是用MiscFlag
-创建的D3D11_RESOURCE_MISC_GDI_COMPATIBLE
。IDXGISurface1::GetDC
它允许通过和使用 Windows 函数 DrawIconEx在表面上进行 GDI 渲染来绘制光标的图像。光标的绘制由 Windows 函数执行,并在显存的上下文中完成。
问候。