libjingle 网络库。 system_wrapper 与操作系统相关的代码,如 CPU特性,原子操作,读写锁,时钟等。
Build --arch arm64-v8a --extra-gn-args "is_debug=true symbol_level=2 android_full_debug=true" 这时编译出的 libjingle_peerconnection_so.so
armeabi-v7a 编译成功后会输出两个文件: out/release/armeabi-v7a/lib.java/sdk/android/libwebrtc.jar out/release/armeabi-v7a/libjingle_peerconnection_so.so
更改会话和终止会话(可选) 3)当会话双方同时尝试建立或者更改会话时,实施双占用分解(可选) 哪些可以做为信令的传输协议: HTTP、WebSocket、TCP、UDP、MQTT等等都可以 信令协议: SIP、LibJingle
我们需要从不同公司获得不同的专业组件,而这一切都要获得对方公司的许可,如来自GIPS的音频,Vidyo的视频,libjingle的网络。接下来就是奇迹的发生:把它们组装到一起!
---- Transport / Session 传输部分可基于 TCP/UDP,会话层组件采用了 libjingle 库的部分组件实现。
在此之后,Google 又将在 Gtalk 中用于 P2P 打洞的开源项目 libjingle 融合进了 WebRTC。
当然可以拿开源的一些实现来抄一下(例如:libjingle),或者拥抱一下Google的QUIC协议,然而,这些都需要不少成本的。 上面说了这么多,难道真的不该用UDP了吗?
统一化和标准化对传统音视频交互环境差异性的规避: 1)以往音视频交互需要面对不同的 NAT 、防火墙对媒体 P2P 的建立带来了很大的挑战; 2)现在WebRTC 中有P2P 打洞的开源项目 libjingle
Jingle是由Google开发的XMPP扩展,目的是为语音和视频提供消息传递服务:当前的WebRTC实现是基于C++ libjingle库的,这是最初为Google Talk开发的Jingle实现版本
它可以动态链接Android WebRTC库libjingle_peerconnection_so.so,而无需进行明显的修改。
关于事件和信号机制的实现,网络上的开源训也比较多,比如FastDelegate,sigslot,boost::signal等,其中sigslot还被Google采用,在libjingle的代码中我们可以看到他是如何被使用的
领取专属 10元无门槛券
手把手带您无忧上云