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

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

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

Android WebRTC 音视频开发总结(二)_第1张图片

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

Android WebRTC 音视频开发总结(二)_第2张图片

 

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 音视频开发总结(二))