webrtc peerconnection_client windows下连接到服务后不显示设备列表的问题

1.该问题的核心就是主线程没有正常运行,这个是windows下示例的一个bug,无论是否使用clang编译都会产生此问题,解决方案如下自定义一个socketserver,然后传入mainthread,最后启动mainthread即可

该问题的表现现象是:连接到peerconnection_server之后,不会显示设备列表。

自定义的socketserver代码如下:
class CustomSocketServer : public rtc::PhysicalSocketServer {
 public:
  bool Wait(webrtc::TimeDelta max_wait_duration, bool process_io) override {
    if (!process_io)
      return true;
    return rtc::PhysicalSocketServer::Wait(webrtc::TimeDelta::Zero(),
                                           process_io);
  }
};

然后使用CustomSocketServer定义对象,传入mainthread,开启线程即可解决此问题,修改后的文件见如下链接:

https://download.csdn.net/download/qq_17411797/89336713

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WebRTC PeerConnectionWebRTC技术框架中重要的一环,它提供了实时音视频通信的能力。如果你想在你的应用程序中使用PeerConnection,你需要经过以下步骤将它引入进来: 1. 首先,你需要在你的应用程序中引入WebRTC的JavaScript库。你可以通过在你的HTML文件中引入以下代码来实现: ```<script src="https://webrtc.github.io/adapter/adapter-latest.js"></script>``` 2. 接下来,你需要在你的应用程序中创建PeerConnection实例。创建实例时,你需要指定ICE服务器的URL。此外,你还可以将本地音视频流添加到PeerConnection中。 ``` var pc = new RTCPeerConnection({ 'iceServers': [{ 'urls': 'stun:stun.l.google.com:19302' }] }); navigator.mediaDevices.getUserMedia({ audio: true, video: true }).then(function(stream) { var videoTrack = stream.getVideoTracks()[0]; var audioTrack = stream.getAudioTracks()[0]; pc.addTrack(videoTrack, stream); pc.addTrack(audioTrack, stream); }); ``` 3. 现在,你已经成功地创建了PeerConnection实例,并添加了本地音视频流。下一步是启动ICE候选项协商,以建立远程音视频流。这可以通过创建一个SDP交换会话,以与远程对等方交换SDP来实现。 ``` pc.createOffer().then(function(offer) { return pc.setLocalDescription(offer); }).then(function() { // send offer to remote peer }); ``` 以上就是引入WebRTC PeerConnection的方法。当然,以上代码只是基础代码,并不能实现完整的音视频通信。在实际应用中,还需要处理候选项协商、SDP交换、ICE连接状态等。但不管怎样,PeerConnection作为WebRTC技术的核心,对于实现实时音视频通信至关重要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值