WebRTC iOS实现线程相关问题

时间:2016-04-14 06:06:19

标签: ios iphone multithreading webrtc videochat

我正在使用WebRTC在我的应用中处理音频视频通话。我在我的iOS项目中编译并添加了最新的WebRTC库。现在我面临与WebRTC API的线程相关的几个问题。

以下是通过我自己的服务器与其他用户建立的呼叫流程。

  • 用户与其他用户发起呼叫。在这里我分配所有与WebRTC相关的对象,在我的例子中它是语音引擎。这是使用全局队列在后台线程上完成的。语音引擎的初始化是语音引擎模块中所有必需类的初始化。
  • 呼叫服务器以获取用于与其他用户连接的会话ID。成功回调时,调用CreateChannel类的VoEBase方法。这用于创建音频通道。此成功块也使用全局队列在后台线程上运行。

现在这里有问题,在接收会话ID后,当频道创建的方法被调用时app正在崩溃。我在调试模式下编译了库来获取日志。在日志中,它显示以下错误,

# Check failed: thread_checker_.CalledOnValidThread()

我在互联网上搜索了这个问题,我理解的是,我们应该从同一个线程调用语音引擎方法。在我的情况下,我调用初始化方法并使用全局队列从后台线程创建方法。但是全局队列有五个线程用于执行任务(我在Apple Docs中已经读过)。因此,无法保证这些方法将在与全局队列处理的相同线程上调用。

我需要解决这个问题。欢迎任何建议。提前致谢。

0 个答案:

没有答案