Android IOS WebRTC 音视频开发总结(十七)-- 调试技巧

本文章主要介绍WEBRTC在各平台下调试或日志查看方式,以方便问题排查,包括BS,PC,Android,IOS(本系列文章转载请说明出处,博客园RTC.Blacker).

 

1,浏览器开发:

这种开发方式不需要下载和编译WEBRTC源码(很多人都是"死"在这里的,不过确实很麻烦,原因就不赘述了),直接调用浏览器提供的API,

入门相对简单(这并不意味着效果差,恰恰相反,因为浏览器厂商为你做了很多的优化,很多时候效果比自己去弄好多了).

这种方式的缺陷就是无法修改底层代码,如果您想调整一些实现方式或与现有系统结合就不好弄了.

所以如果这种方式出问题了一般都是您自己的问题,相应的查问题方式就是console.log和wireshake之类的工具.

  

2,Android开发:

这部分是我要重点介绍的,很多不熟悉ndk或linux的不知道怎么去查看底层的日志,其实通过logcat您可以比较方便地看到底层的输出.

如果您正在使用Talk进行开发,可参考如下调用方式:

如果没有使用到libjingle,可参考MediaEngine.java的调用方式:

Logging.java在JNI中实现如下:

构造g_trace_callback是因为需要在其构造函数中注册一个callback,LogcatTraceContext实现如下:

呵呵呵,搞过ndk开发的,很熟悉__android_log_print这个函数吧.

这时候您可能会有疑问,如果要在调用Logging.enableTracing()方法前查看初始化libjingle环境的日志,怎么搞呢?

请看WebRtcVoiceEngine构造函数的实现:

它在构造函数里面直接注册callback,当webrtc需要输出log的时候就可以直接执行自己定义的callback,

这样就可以很好滴控制日志的输出,设计得很巧妙,比看啥设计模式的理论书籍都管用.

这时候您还有新的疑问,如果要在调用Logging.enableTracing()方法前查看webrtc底层的日志,怎么办呢?

下面这些代码是我自己加上去的(不是最好的方案),因为webrtc目前还不完善的原因,日志都搞得这么复杂(历史原因就是webrtc与talk是后面才整合到一起的),估计他们后面会改得更合理,所以我也这样先将就着,呵呵.


3,PC开发:

PC上基本上都是用VS在开发,很好调试,既可以将日志输出到控制台,还可以直接在代码中下断点,或者抓包,手段很多,操作起来也不复杂.

 

4,iOS开发:

xcode跟vs差不多,很方便,无需赘述.

吐槽一句,xcode,eclipse,virtual machine一起运行,mac表示很吃力,机器又得升级换代了,下个月的信用卡哦,亚历山大.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值