WebRTC -- 自定义AudioDeviceModule时线程检查失败

《WebRTC – 添加选择音频输入输出设备功能》一文介绍了Webrtc默认使用计算机上的默认的音频输入输出设备,并且介绍了如何为webrtc指定音频的输入输出设备。读者根据上文介绍的方法实践的时候,Debug版运行时很可能会遇到thread check failed的提示。

WebRTC内部有三个主要线程(network_thread,worker_thread,signaling_thread),其中大多回调都是通过SignalThread线程发出的,WebRTC对每个线程做哪些事情,及哪些事情由哪些线程做有严格的限制。提示thread check failed就是因为在我们在自定义ADM的时候未提供自定义的worker_thread线程。

rtc::scoped_refptr
CreatePeerConnectionFactory(
    rtc::Thread* network_thread,
    rtc::Thread* worker_thread,
    rtc::Thread* signaling_thread,
    rtc::scoped_refptr default_adm,
    rtc::scoped_refptr audio_encoder_factory,
    rtc::scoped_refptr audio_decoder_factory,
    std::unique_ptr video_encoder_

你可能感兴趣的:(WebRTC从入门到精通)