提交工单
咨询集成、功能及报价等问题
产品 / 插件:屏幕共享
平台 / 框架:macOS
更新时间:2022-11-16 17:53
请检查 SDK 是否正常初始化。如果初始化异常,请重试。
请参考以下代码进行确认。
//检测是否可以采集画面(没有开启辅助功能权限可以采集数据,但是窗口状态回调可能异常)
bool isValid = zego_windowthumbnail_window_checkStatus(windowID);
SDK 在进行屏幕共享时,接口调用步骤如下:
如果过滤窗口失效,请按照如下步骤确认:
首先请确认第 2 步的调用顺序在最前面。
其次如果是自己的应用的窗口,可以通过设置窗口的 “sharingType”为 “NSWindowSharingNone”,Qt 示例代码如下:
void ZegoMacUtils::setSharingTypeNone(QWidget* widget){
if(widget != nullptr)
{
NSView* view = (NSView*)widget->winId();
NSWindow* wnd = [view window];
wnd.sharingType = NSWindowSharingNone;
}
}
检查传入的窗口 ID 是否正确。开发者可以通过以下方法获取窗口 ID,与自己传入的 ID 进行对比。
uint32_t windowListLen = 0;
const struct ZegoScreenCaptureWindowItem * windowList = zego_screencapture_enum_window_list(1,&windowListLen);
for (int i = 0; i < windowListLen; i++)
{
// NSLog(@"[***] windowID: %d title: %s", windowList[i].handle, windowList[i].title);//
struct ZegoScreenCaptureWindowItem info = windowList[i];
ZegoWindowItem *windowItem = [[ZegoWindowItem alloc] init];
windowItem.windowID = (CGWindowID)windowList[i].handle;
windowItem.title = [NSString stringWithUTF8String:(windowList[i].title)];
[self.m_windowList addObject:windowItem];
}
zego_screencapture_free_window_list(windowList);
Qt 下获取窗口 ID 的方法,请参考如下代码:
quint32 ZegoMacUtils::getNSWindowId(QWidget* widget){
NSView* view = (NSView*)widget->winId();
NSWindow* wnd = [view window];
return (CGWindowID)[wnd windowNumber];
}
联系我们
文档反馈