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

时间: 2024-11-06 10:20:04

Android IOS WebRTC 音视频开发总结(十七)的相关文章

转:?Android IOS WebRTC 音视频开发总结 (系列文章集合)

随笔分类 - webrtc Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blackerteam 或 webrtcorgcn). callstats是一家做实时通讯性能测阅读全文 posted @ 2016-07-22 08:24

Android IOS WebRTC 音视频开发总结(八十五)-- 使用WebRTC广播网络摄像头视频(下)

本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blackerteam 或 webrtcorgcn). 回顾:Android IOS WebRTC 音视频开发总结(八十三)-- 使用WebRTC广播网络摄像头视频(上) 连接网络摄像头 正如上文所提,我们选用一款简单的D-Link DCS-7010L网络摄像头.关键原因在于它支持RTSP协议,因此服务

Android IOS WebRTC 音视频开发总结(六八)-- Google: What's next for WebRTC

本文主要从用户,公司和技术角度分析美女视频直播这个行业,文章最早发表在我们的微信公众号上,支持原创,详见这里, 欢迎关注微信公众号blackerteam,更多详见www.rtc.help Justion和Sarah是google webrtc项目的主要负责人,下面的图片是根据他们分享的内容进行整理的,涉及webrtc进展.优化等方方面面.整理这些资料的过程中我们发现他们对待webrtc还是挺用心的,为webrtc的完善做了很多的工作,谢谢他们! 原始视频时长53分13秒,全英文的,所以我们考虑做

Android IOS WebRTC 音视频开发总结(六)

前段时间在搞IOS的音视频版本,所以将标题改为了Android IOS WebRTC 音视频开发总结, 下面总结一下开发过程中的一些经验: 1. IOS WebRTC音视频编译和下载: 有过android WEBRTC编译下载经验再去弄IOS,你会发现简单多了,再有问题,可以参考:http://www.cnblogs.com/ProbeStar/p/3411510.html  记住有MAC和IOS两个版本,要指定好你想要哪个版本. 2. 正确区分armv7 armv7s i386平台: 编译的时

Android IOS WebRTC 音视频开发总结(二四)

本文主要分析webrtc音视频点对点部分的代码结构,文章来自博客园RTC.Blacker,转载请说明出处. 前段时间在查一个偶尔断线的问题(这种问题最蛋疼,不好重现,只能凭经验去搞),所以理了下webrtc的P2P代码结构,总结如下: 先来张图显示实际会话过程中的两种通讯路径:P2P或转发,92%的情况下是通过P2P实现. 注意:实际通讯过程中每个客户端都会不停地发送和接收Stun包,这样做是为了维护响应的连接和端口. 实际通讯过程中的核心组件为P2PTransportChannel,他代表着本

Android IOS WebRTC 音视频开发总结(八十七)-- WebRTC中丢包重传NACK实现分析

本文主要介绍WebRTC中丢包重传NACK的实现,作者:weizhenwei ,文章最早发表在编风网,微信ID:befoio 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blackerteam 或 webrtcorgcn). 在WebRTC中,前向纠错(FEC)和丢包重传(NACK)是抵抗网络错误的重要手段.FEC在发送端将数据包添加冗余纠错码,纠错码连同数据包一起发送到接收端:接收端根据纠错码对数据进行检查和纠正.RFC5109[1]定义FEC数据包的格式.NA

Android IOS WebRTC 音视频开发总结(二十)---- 自由职业与高端猎聘

咋看标题感觉与WebRTC和音视频无关,其实有着很大的关联,文章来自博客园RTC.Blacker,转载请说明出处. 背景: 一方面因为对开发人员比较了解,不喜欢约束,喜欢自由自在,所以我们向往自由职业. 另一方面企业老总总是让推荐人才,同时有些真正的人才却很难找到好的企业. 基于以上两点我决定发表这篇文章,下面那提供三种类型的工作供您选择: 一.自由职业: 1.职位1: 1.1.熟悉XMPP和openfire,客户想将IM功能外包给熟悉的人士完成,如果觉得您能胜任该职位,我帮您推荐,价格你们自己

Android IOS WebRTC 音视频开发总结(五七)-- 网络传输上的一种QoS方案

本文主要介绍一种QoS的解决方案,文章来自博客园RTC.Blacker,欢迎关注微信公众号blacker,更多详见www.rtc.help QoS出现的背景: 而当网络发生拥塞的时候,所有的数据流都有可能被丢弃:为满足用户对不同应用不同服务质量的要求,就需要网络能根据用户的要求分配和调度资源,对不同的数据流提供不同的服务质量: 1.对实时性强且重要的数据报文优先处理: 2.对于实时性不强的普通数据报文,提供较低的处理优先级,网络拥塞时甚至丢弃. 为了满足上述需求,QoS出现了,定义如下: QoS

Android IOS WebRTC 音视频开发总结(二九)

Android上的音质一直被大家所困扰和诟病,这里面有很多原因, 下面是最近一位前UC同行发邮件跟我交流的一些记录,供参考,支持原创,文章来自博客园RTC.Blacker,转载请说明出处. 以下文字来自邮件,为便于阅读和理解,略有整理: "Blacker,您好,本人一直从事音视频算法的处理与研究,包括H264视频,语音抑制,回音消除,噪音处理等分支.最近已经转向webrtc了,对webrtc也算是相对熟悉了.不过我在利用webrtc模块来开发时,遇到了一个音频采集的问题.不知道你是否遇到了,你们