博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android IOS WebRTC 音视频开发总结(十七)-- 调试技巧
阅读量:6848 次
发布时间:2019-06-26

本文共 1252 字,大约阅读时间需要 4 分钟。

本文章主要介绍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表示很吃力,机器又得升级换代了,下个月的信用卡哦,亚历山大.

 

posted on
2014-12-29 10:17 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lingyunhu/p/4176668.html

你可能感兴趣的文章
JDK 工具列表
查看>>
[Angular 2] Rendering an Observable with the Async Pipe
查看>>
HibernateTool的安装和使用(Eclipse中)
查看>>
开发原则之约定大于配置
查看>>
docker学习2-安装实践
查看>>
在你的ASP.NET MVC中使用查找功能
查看>>
keytool
查看>>
FineUI参考手册(离线版)现已免费提供下载!
查看>>
Nginx+Windows负载均衡(转载)
查看>>
[推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到)
查看>>
优化IPOL网站中基于DCT(离散余弦变换)的图像去噪算法(附源代码)。
查看>>
微软最有价值专家大中华峰会花絮视频
查看>>
Chapter 1 First Sight——25
查看>>
64bit Centos6.4搭建hadoop-2.5.1
查看>>
前端开发必备!Emmet使用手册
查看>>
node-load module
查看>>
前端性能优化策略
查看>>
mac office
查看>>
简述 OAuth 2.0 的运作流程
查看>>
阿里NASA新知 量子通信保障信息更安全
查看>>