网络类型很多,比如网线、WIFI、蜂窝网络、VPN、LOOPBACK等等。
那么WebRTC在连接的时候,就可以对网络进行筛选,尤其是对于多网卡,多种连接方式的设备。

CreateNetworks的调用流程

WebRTC 收集网卡信息的时机

线程: signaling thread

PeerConnection::SetLocalDescription
SdpOfferAnswerHandler::SetLocalDescription
SdpOfferAnswerHandler::DoSetLocalDescription (transport_controller()->MaybeStartGathering();)
JsepTransportController::MaybeStartGathering()
void JsepTransportController::MaybeStartGathering() {if (!network_thread_->IsCurrent()) {network_thread_->Invoke<void>(RTC_FROM_HERE,[&] { MaybeStartGathering(); });return;}for (auto& dtls : GetDtlsTransports()) {dtls->ice_transport()->MaybeStartGathering();}
}

线程: network thread

JsepTransportController::MaybeStartGathering()
P2PTransportChannel::MaybeS

WebRTC Native M96收集网卡地址信息以及筛选过滤VPN网络(CreateNetworks、FilterNetworks)相关推荐

  1. WebRTC Native M96 H264打包方式解读--kH264SingleNalu、kH264StapA、kH264FuA

    在<WebRTC Native M96视频基础知识介绍–使用H264>中介绍了WebRTC中H264的相关知识,这边不再啰嗦. 抓了一个rtp的包: 90 60 7c 5d 11 ec 7 ...

  2. WebRTC Native M96 回调音频裸数据IAudioFrameObserver--采集和播放语音混音后的数据(onMixedAudioFrame)

    此前已经说道,通过注册回调,给上层APP抛音频裸数据: <WebRTC Native M96 SDK接口封装–注册语音观测器对象获取原始音频数据registerAudioFrameObserve ...

  3. WebRtc Native M96 远端视频接收之PacketBuffer-组帧原理分析(4)

    组帧 视频一帧数据往往被拆分为多个packet进行发送,组帧是将接收到的packets重组为视频帧.组帧的关键在于找到视频帧的起始与终止packet.对于h264编码的视频帧,rtp传输时没有明确的起 ...

  4. WebRTC Native M96 SDK接口封装--startAudioMixing播放音乐文件与麦克风采集声音混音

    封装接口 使用WebRTC大概有两种方式,一种是把WebRTC当做一种库来用:另一种是把WebRTC当做一个框架,自己在上层封装代码. 不管怎么,做实时音视频SDK开发的,都需要封装接口,供给上层应用 ...

  5. WebRTC Native M96 SDK接口封装--enableLoopbackRecording启用声卡采集,声卡播放的声音合到本地音频流发送远端

    音频采集或播放时,需要用MMDevice API来枚举和获取指定设备,用WASAPI来处理应用程序和音频设备之间的音频流数据,如采集或播放 声网接口:enableLoopbackRecording 接 ...

  6. WebRTC Native M96 基础Base模块介绍之网络相关的封装

    rtc_base IPAddress 与版本无关的 IP 地址类,包装了 in_addr 和 in6_addr 的联合. 对IP地址的封装IPAddress和InterfaceAddress,IPAd ...

  7. WebRTC Native M96音频基础知识介绍--使用Opus

    声波 声音是振动产生的声波,通过介质(气体.固体.液体)传播并能被人或动物听觉器官所感知的波动现象. 声音的特性可由三个要素来描述,即响度.音调和音色 音频(音调) 音调就是音频.物理学中用每秒内振动 ...

  8. WebRTC Native M96 SDK接口封装--muteLocalVideoStream开关本地视频发送

    https://dabaojian.blog.csdn.net/article/details/123587207 已经介绍了如何开关本地预览,现在介绍一下mute/unmute本地音视频设备的接口. ...

  9. WebRTC Native M96 SDK接口封装--muteLocalAudioStream开关本地音频发送

    摊牌了,水了一篇. 因为之前介绍了muteLocalVideoStream接口的实现,那么实现muteLocalAudioStream就大同小异了. 接口定义(Agora) 接口名:    muteL ...

最新文章

  1. AngularJs $cacheFactory 缓存服务
  2. linux 内核 时间片,能讲一下在Linux系统中时间片是怎么分配的还有优先级的具体算法是...
  3. CountUp.js – 让数字以非常有趣的动画方式显示
  4. 第七篇:SpringBoot 2.x集成Lombok
  5. 软件体系架构:RM-ODP参考模型简介
  6. NOI.AC#2007-light【根号分治】
  7. 背景图片hover加蒙层_css3实现图片遮罩效果鼠标hover以后出现文字
  8. 感知机算法python实现
  9. E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
  10. 盒子模型之外边距margin(HTML、CSS)
  11. python linkedlist,LinkedList在python中的实现
  12. intellij安装scala插件
  13. ssdp java_SSDP 简单服务发现协议
  14. java爆炸图片切换,JavaScript实现爆炸碎片的 图片切换 效果
  15. 剑灵最新服务器2017,NCsoft2017新游戏计划 剑灵天堂M多款手游
  16. 二进制转十六进制(参考XYJ)
  17. Oracle11g64位发行版安装教程
  18. python 爱心文字墙_博客园墙裂推荐!从未见过如些清新脱俗的完整Python+requests接口自动化测试框架搭建文章!...
  19. Golang程序调试 -- 内存泄漏pprof工具
  20. 什么是数据库“存算分离”架构?

热门文章

  1. squid介绍和作用
  2. 如何实现和破解网站上禁止复制粘贴的其中一种方法
  3. 腿抖也是什么特发性震颤的原因吗?
  4. 视频处理软件BB FlashBack v5.25.0发布,修复和改进部分功能
  5. python调用sql数据库进存销_python多进程快速批量爬取黄页海量信息并保存文本和数据库教程...
  6. python opencv图像对比度_Python OpenCV cv2使图像亮度和对比度提高100%的简单方法
  7. 怪不得越来越多的人选择出国做护士!
  8. PostgreSQL时间戳
  9. flutter 卡顿_记一次flutter列表卡顿的优化
  10. Maven实战与原理分析(一):maven超全使用指南总结