Linphone安卓端移植和开发(1)

老司机引言:之前做过一款即时通讯的App,里面用到语音通话的模块,老司机看了各大开源的语音通    
话和视频通话,最终敲定使用Linphone。别问我为什么用这个,当时WebRTC还不是特别火,所以没
有怎么关注。闲来无事,将我的研究成果写下来,也算是巩固了。 

1.linphone开源项目的编译和移植

1.1 准备环境

地址:https://github.com/BelledonneCommunications/linphone-android
这里下载源码要使用git,如果直接下压缩包的话还需要将子模块的内容下下来,不要问我子模块是啥,
所以这里使用到的git命令是

git clone [email protected]:BelledonneCommunications/linphone-android.git --recursive

当然你要是下了压缩包的话,或者上面过程中下载子模块失败的话,也可以使用下面这个命令单独下载子模块

cd到项目主目录
git submodule update --init --recursive  

因为需要编译源码所以需要linux环境,mac本的也是差不多的,这里老司机用的是ubuntu系统,之前也用过centOS的系统编过,虽然最终也成功了,但是个中曲折也只有自己知道,好吧,下面简单说说过程
人家github上写的很详细啊
Linphone安卓端移植和开发(1)_第1张图片

ubuntu的系统基本上只需要安装一下sdk,ndk 还有cmake升级一下,这里略过,请自行查询方式方法。

1.2 开始编译

安装完了之后呢,cd到项目目录,使用python命令自动makefile文件

python prepare.py  {可选arm armv7 arm64 x86 x86_64,或者不填}

看得懂python的这里也略过,自己去prepare.py里看。就说一下脚本里常用的

python prepare.py -clean    clean一下项目删除之前生成的文件
python prepare.py -build    build一下java项目

上面的makefile文件生成之后,直接make一下就等着就行了

make 

这里是生成之后的目录
Linphone安卓端移植和开发(1)_第2张图片

我擦,我居然贴了一个android studio的工程目录图片,太不专业了

基本上到这就完成的linphone的编译工作,当然你如果觉得这么多so包好麻烦,你就使用linphone-sdk中静态库自己再编译称一个so包就好了,我当时也想这么做,奈何项目比较急,作罢作罢

1.3 开始移植

咱先看看都有哪些需要移植,linphone人家是多平台开发,就是吊

  1. 需要上面的.so文件
  2. 需要子模块linphone下的java文件,子模块mediastreamer2中的java文件
    拷完之后就长这样,两年前也长这样
    Linphone安卓端移植和开发(1)_第3张图片

下节开始写服务器端的搭建

移植Android端源码:https://github.com/ddssingsong/VoipLibrary

如需要详细语音通话和视频通话,请入群:601332720

你可能感兴趣的:(linphone)