从github上下载最新的代码
https://github.com/BelledonneCommunications/linphone-android.git
下载后可以看到有一个linphone-sdk-android目录,但是里面只有一个build文件,而且也没有之前3.X版本的submodules的库。
直接用Android Studio打开项目,也会自动下载Linphone自己编译好的SDK。
现在的版本的代码结构和之前的版本有很大不同,不会将原来底层的协议栈放到在代码,只有JAVA的代码,linphone的SDK需要另外编译。
linphone SDK的android编译必须要在Linux或者MacOS下面编译。我们就使用Ubuntu来编译。
使用虚拟机安装ubuntu-18.04.2,配置环境,并且安装Java和Android SDK/NDK,Java只能装Java8,太高版本会编译会失败,具体可参照我之前的文章《Ubuntu17.04编译Linphone Android最新版本3.2.8》
https://blog.csdn.net/liccon/article/details/78275899
最新的4.3版本用最新的NDK20也可以成功编译,推荐使用Android Studio的SDK管理界面下载NDK。下载完成后要在/etc/profile加入NDK的路径,在SDK下的./ndk/版本号 目录
我们下载linphone-sdk的代码
git clone https://gitlab.linphone.org/BC/public/linphone-sdk.git --recursive
下载完成后,阅读linphone-sdk的README.md文件,cmake,python(2.7版本),pip(pip实际的安装包是python-pip),yasm,nasm,doxygen
,Pystache (使用pip install pystache安装), six (使用pip install six安装),除此之外,还需要安装pkg-config
PS:如提示无法定位python-pip,可以安装python3,安装之前需要将原来的python2移除
sudo apt-get install python3 python3-dev python3-pip
Pystache 和则需要pip3 install pystache指令安装
进入linphone-sdk的目录,创建build子目录
mkdir build
cd build
cmake .. -DLINPHONESDK_PLATFORM=Android
cmake --build .
也可以加上编译选项
cmake .. -DENABLE_G729=YES -DENABLE_SILK=YES -DLINPHONESDK_PLATFORM=Android
cmake --build .
这是编译G729和SILK的选项,也可以增加其他选项。其他的选项有
ENABLE_VIDEO 是否启动视频,默认是允许
ENABLE_NON_FREE_CODECS
ENABLE_GSM
ENABLE_OPUS
ENABLE_SPEEX
ENABLE_DEBUG_LOGS
ENABLE_UNIT_TESTS
ENABLE_FFMPEG
ENABLE_VPX
ENABLE_MKV
ENABLE_SRTP
ENABLE_ZRTP
如果编译顺利,将会在build/linphone-sdk/bin/output/aar下面生成linphone-sdk-android-release.aar,linphone-sdk-android-debug.aar两个文件,我们将文件复制到linphone-android的linphone-sdk-android子目录下,然后使用Android Studio打开linphone-androidbi编译即可。
Linphone-android默认会引用网络上的linphone-sdk版本,需要手工修改app下的gradle.build。
releaseImplementation project(path: ":linphone-sdk-android", configuration: 'release') debugImplementation project(path: ":linphone-sdk-android", configuration: 'debug')
编译过程中可能会提示NDK版本不对的问题,这个时候在cmake/Android/gradle/build.gradle.cmake文件里面项android下面增加ndkVersion的配置。如
compileSdkVersion 29
buildToolsVersion "29.0.3"
ndkVersion "21.3.6528147"
具体代码在github上获取
https://github.com/zhanggx/linphone-android.git
也可以直接下载我编译好的linphone-sdk-android-release.aar,linphone-sdk-android-debug.aar再单独下载https://github.com/BelledonneCommunications/linphone-android.git 的代码自行构建工程编译。
链接: https://pan.baidu.com/s/1h10aKH1OsOmRtU6qkBIjKA 提取码: maju