打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Android WebRTC 音视频开发总结(二)

 

这节主要介绍WebRTCDemo的结构,以此来简单了解WebRTC的调用流程,转载请说明出处(博客园RTC.Blacker)

 

1、先看WebRTCDemo的代码结构,如下图:

2WebRTCDemo中音视频管理接口--MediaEngine,包括操作音频和视频的接口,详见MediaEngine的实现。

 

3、jni实现:细心的读者会发现WebRTCDemo下面有一个jni目录,这是android提供的调用本地代码的方式,即Java Native Call(读者如想详细了解JNI是怎么回事,可以买本书或找些相关资料来看看,这里面涉及到NDK编译,JNI语法)。

MediaEnginenative方法最终都是通过Jni下面的video_engine_jni.cc和video_engine_jni.cc来实现的,这些Jni方法最终就转到WebRTC提供的接口类中去了,即VoiceEngineVideoEngine,顺着这个思路再看源代码就比较容易理解了。 

 

4、如何调试WebRTCDemo中的c++代码?

根据JNI要求,需要用NDK编译WebRTCDemo,不过目前WebRTCDemo是直接调用现成的libwebrtcdemo-jni.so,如果要调试得自己写一个Andorid.mk文件将相关源代码加进来,几乎涉及大部分WebRTC代码,这样工作量有点大,所以放弃了。

 

WebRTCDemo过滤和查看日志的具体方法如下(TraceLevel选项很多,可根据自己需求选择):

1 public void setTrace(boolean enable, VideoEngine.TraceLevel traceLevel) {2 if (enable) {3 vie.setTraceFile('/sdcard/trace.txt', false);4 vie.setTraceFilter(traceLevel);// huly5 return;6 }7 vie.setTraceFilter(VideoEngine.TraceLevel.TRACE_NONE);8 }

后面我还会具体讲到自定义开发中如果修改底层代码排查问题。

 

5、肯定有人会问IOS下WebRTCDemo在哪里?是怎么实现的?

答案:请继续关注


题外话:被微软宠坏了兄弟们,在linux下改webrtc代码蛋疼了吧,哈哈哈!

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Ubuntu14.04编译WebRTC For Android代码 2014
webrtc android 免费开源代码 开发,分享
webrtc音视频开发总结——架构分析
程序员的福利:Android_JNI整套视频分享
Android IOS WebRTC 音视频开发总结(二五)-- webrtc相关资源
高级android工程师必备的C,C++基本知识
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服