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

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

2014-03-04 13:46 by Blacker, 3087 阅读, 4 评论, 收藏编辑

上节介绍了WebRTC代码编译和WebRTCDemo的运行,这节主要介绍WebRTCDemo的结构,以此来简单了解WebRTC的调用流程。

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代码,这样工作量有点大,所以放弃了,不知道大家还有没有更好的方式,谢谢指教!

 

貌似在ANDROID里直接调试WEBRTC的代码难度有点高,不过可以通过操作LOG来实现,具体方法调用如下(TraceLevel选项很多,可根据自己需求选择):

复制代码
1 public void setTrace(boolean enable, VideoEngine.TraceLevel traceLevel) {
2         if (enable) {
3             vie.setTraceFile("/sdcard/trace.txt", false);
4             vie.setTraceFilter(traceLevel);// huly
5             return;
6         }
7         vie.setTraceFilter(VideoEngine.TraceLevel.TRACE_NONE);
8     }
复制代码


另外在linux下编辑代码推荐使用 VIM 或者 SourceInsight。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值