StartScreenCaptureByWindowId如何获取窗口 ID


StartScreenCaptureByWindowId参数窗口id怎么获取呀?

如果是 windows 端:

BOOL CALLBACK EnumProc(HWND hWnd, LPARAM IParam)
{
 // 仅获取可视窗口 ID,忽略弹出窗口及目录窗口
 LONG IStyle = ::GetWindowLong(hWnd, GWL_STYLE);
 if ((IStyle&WS_VISIBLE) != 0 && (IStyle&(WAS_POPUP | WA_SYSMENU)) != 0) {
     HWND window_id = hWnd;
}
 return TRUE;
}
EnumWindows(&EnumProc, NULL);

请参考屏幕共享相关文档:
https://docs.agora.io/cn/Interactive%20Broadcast/screensharing_windows?platform=Windows

Unity 端目前可能无法准确的获取窗口 ID,我们更建议通过自采集的方式实现屏幕共享。