StartScreenCapturebyWindowId()不排除某些程序(Agora Unity)的重叠窗口



我正试图在Unity for Windows中为一个项目设置单独的窗口共享。我目前的做法是使用EnumWindows()IsVisableWindow()GetWindowText()创建一个窗口标题和句柄的字典,然后调用StartScreeCapturebyWindowId()共享所选窗口。

这对大多数流程来说相对来说效果良好;进程的窗口并且仅进程的窗口被流式传输。然而,对于某些程序(如Google Chrome、Discord和Windows Photos(,捕获区域设置正确,但不会剔除重叠的窗口。

有人知道是什么导致了这个问题吗?我抓这些窗户把手的方式有问题吗?或者,启动屏幕捕捉是否有我遗漏的内容?

您确实做了正确的事情。然而,您也遇到了SDK的Windows部分的限制。为了更好地理解这一点,这组程序是UWP应用程序。它们有不同的方式来共享可见像素。以前版本的Agora SDK甚至无法显示窗口。从3.0.1开始,SDK使用矩形切割方法来获得窗口显示。您可以在这里进一步阅读有关API的在线文档。

Agora在短期内没什么可做的。因此,您只需要处理用户体验(例如,通过警告他们(,或者考虑使用Web SDK等解决方案。

相关内容

  • 没有找到相关文章

最新更新