Jumping Yang[Wicresoft]
Jumping Yang[Wicresoft]
this is just a fork from chromium webrtc,I think you should file issue there?
you can see some object-c samples: https://github.com/search?utf8=%E2%9C%93&q=webrtc&type=
我以前尝试过,国内有镜像,你可以看下https://blog.csdn.net/yangzhenping/article/details/52497040
你自己的项目信用了类库,但是编译时使用的配置和库冲突了,你需要修改自己项目的编译设置。
用gn编译时最靠谱的。vs编译很麻烦的。
你如果生成了整个项目的sln,那么打开之后,看下引用库的相关test项目,对比下test项目的编译设置和你自己的设置有什么区别。 test项目在https://github.com/JumpingYang001/webrtc/tree/master/test,生成的项目文件你在打开sln之后应该可以找到。
@harlanc 10G+ contains dependencies libraries soure code. 300M+ only webrtc part.
参考这个:https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Session_lifetime#ICE_restart ICE重启 有时,在WebRTC会话的生命周期中,网络状况会发生变化。例如,其中一个用户可能会从蜂窝网络过渡到WiFi网络,或者网络可能会拥塞。发生这种情况时,ICE代理可能会选择执行ICE重新启动。这是网络连接重新协商的过程,与初始ICE协商执行的方式完全相同,但有一个例外:媒体继续在原始网络连接上流动,直到新的网络连接启动并运行。然后媒体转移到新的网络连接,旧的关闭。 不同的浏览器在不同的条件下支持ICE重启。例如,由于网络拥塞,并非所有浏览器都会执行ICE重启。 有两个级别的ICE重新启动:完全ICE重新启动会导致会话中的所有媒体流重新协商。部分ICE重新启动允许ICE重新协商特定媒体流,而不是一次性重新谈判所有媒体流。但是,有些浏览器还不支持部分ICE重启。 如果您需要以某种方式更改连接的配置(例如更改为不同的ICE服务器集),则可以在重新启动ICE之前通过使用更新的RTCConfiguration字典调用RTCPeerConnection.setConfiguration()来重新启动ICE之前完成此操作。 要显式触发ICE重新启动,只需调用RTCPeerConnection.createOffer(),指定iceRestart选项的值为true,即可启动协商过程。然后像以往一样处理连接过程。
@Janron let me check.
@janron , 你可以试下这个demo:https://webrtc.github.io/samples/src/content/peerconnection/restart-ice/ 如果demo没问题,那就是你的代码写得有问题。 如果demo有问题,那可能是bug,类似这个:https://github.com/webrtc/samples/issues/863