我有一个unity3d应用程序,该应用程序集成了TokBox,可以将屏幕共享到Web界面。问题是,当我触发屏幕共享时,会遇到以下错误:
Main Thread Checker: UI API called on a background thread: -[UIView bounds]
PID: 3555, TID: 109050, Thread name: (none), Queue name: SCREEN_CAPTURE, QoS: 0
Backtrace:
4 demo 0x00000001043c6b07 -[OTScreenCapture screenshot] +
我正在统一调用本机ios函数,并已从UnityGetGLViewController()传递了Unity视图。我不是本地iOS开发人员,因此我不知道解决此问题的正确方法。我了解到,由于以下代码,导致了该问题的发生:
dispatch_source_set_event_handler(_timer, ^{
@autoreleasepool {
__block UIImage* screen = [_self screenshot];
CGImageRef paddedScreen = [self resizeAndPadImage:screen];
[_self consumeFrame:paddedScreen];
}
});
,它被定期调用以捕获屏幕快照并将其发送出去。如果在Xcode中编辑方案时禁用“诊断”下的“主线程检查器”,则错误消失。 另外,我已经在模拟器上进行了此测试,因此不确定在实际设备上会发生什么。
感谢您以正确的方式帮助解决此问题。