我正在使用C++实现WebRTC点对点音频通话的连接。
我有两个线程:_worker_thread
和_signaling_thread
。当我尝试通过调用方法webrtc::CreatePeerConnectionFactory()
创建_peerConnectionFactory
时,我的应用程序崩溃了。我该怎么做才能使它正常工作?
_signaling_thread.reset(new rtc::Thread());
if(!_signaling_thread->Start())
{
printf("_signaling_thread is Failed");
return;
}
_worker_thread.reset(new rtc::Thread());
if (!_worker_thread->Start()) {
printf( "_worker_thread is Failed");
return;
}
_peerConnectionFactory = webrtc::CreatePeerConnectionFactory(_worker_thread.get(),_signaling_thread.get(),NULL,NULL,NULL);
这是我得到的回溯信息:
* thread #15: tid = 0x17e516, 0x00000001008d5674 MyAPP`rtc::MessageQueue::Get(rtc::Message*, int, bool) + 816, stop reason = EXC_BAD_ACCESS (code=1, address=0x100000038)
* frame #0: 0x00000001008d5674 MyAPP`rtc::MessageQueue::Get(rtc::Message*, int, bool) + 816
frame #1: 0x00000001008e5fb0 MyAPP`rtc::Thread::ProcessMessages(int) + 100
frame #2: 0x00000001008e5e44 MyAPP`rtc::Thread::PreRun(void*) + 88
frame #3: 0x0000000199337b3c libsystem_pthread.dylib`_pthread_body + 156
frame #4: 0x0000000199337aa0 libsystem_pthread.dylib`_pthread_start + 1
rtc::MessageQueue::Get
中偏移量816发生了什么?为什么会调用这个函数以及在何时调用?根据pthread
行,我猜想这是在后台线程中发生的。你能告诉我具体是哪个线程吗? - Austin Mullins