ubuntu - 编译 linphone-sdk

业务需求需要定制sdk,首先声明我们需要的是在Android4.4上跑的sdk,因此本次编译的sdk最低支持为19(不同版本需要的环境不一致),编译过程较容易,难点在于环境配置

环境准备

  • Ubuntu 18.04.6 
  • android-sdk_r24.2
  • android-ndk-r17c
  •  - Cmake >= 3.11
     - python >= 3.6
     - pip (or pip3 if the build machine has both python2 and python3)
     - yasm
     - nasm
     - doxygen
     - Pystache (use `pip install pystache` or `pip3 install pystache`)
     - six (use `pip install six` or `pip3 install six`)
    这些东西使用 sudo apt-get install 安装即可

 1、配置sdk

        1、下载sdk到本地

        wget http://dl.google.com/android/android-sdk_r24.2-linux.tgz

        2、解压

        tar -zxvf android-sdk_r24.2-linux.tgz

        3、下载commandlinetools到本地

        4、解压到 android-sdk-linux下

        5、配置环境变量

        vi /etc/profile

        6、协议授予

        yes | sdkmanager --licenses && sdkmanager --update

环境变量
export ANDROID_SDK_ROOT=~/lichang/android/android-sdk-linux
export PATH=$ANDROID_SDK_ROOT/tools:$PATH
export PATH=$ANDROID_SDK_ROOT/cmdline-tools:$PATH
export PATH=$ANDROID_SDK_ROOT/cmdline-tools/bin:$PATH
export PATH=$ANDROID_SDK_ROOT/emulator:$PATH
export PATH=$ANDROID_SDK_ROOT/tools/bin:$PATH

sdk 目录如下

  2、配置ndk

解压后配置环境变量

export ANDROID_NDK_HOME=~/lichang/android/android-ndk-r17c
export PATH=$ANDROID_NDK_HOME:$PATH

 配置后 source /etc/profile 一下

3、安装Java

apt install openjdk-8-jdk

apt install openjdk-17-jdk

为什么下载两个?遇到版本不匹配的问题,切换Java版本方法如下

sudo update-alternatives --config java 

:~/lichang/linphone/linphone-sdk# sudo update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-17-openjdk-amd64/bin/java      1711      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manual mode
  2            /usr/lib/jvm/java-17-openjdk-amd64/bin/java      1711      manual mode
* 3            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode

Press <enter> to keep the current choice[*], or type selection number: 
 

下载地址

编译流程

1、下载源码

git clone https://gitlab.linphone.org/BC/public/linphone-sdk.git

git checkout release/5.0

git submodule update --init --recursive

全部下载后文件如下,注意不要缺少文件,会导致编译失败(build是自己创建的,后面有步骤):

 2、开始编译

  • mkdir build
  • cd build
  • cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON -DLINPHONESDK_PLATFORM=Android -DLINPHONESDK_ANDROID_ARCHS=armv7 -DENABLE_G729==YES  -DENABLE_VIDEO=NO
  • cmake --build . --parallel 8

编译产物路径如下:

build/linphone-sdk/bin/outputs/aar/linphone-sdk-android-release.aar

遇到问题

1、failed: dlopen failed: cannot locate symbol "__read_chk" referenced by "libbctoolbox.so"...

这个问题折腾的时间比较久,尝试在Android10设备上是可以正常运行的,但是安装在Android4.4上就提示这个错误,后来在GitHub上找到了解决方法,使用NDK 17c or older.

链接如下:Android 4.4 arr Error · Issue #56 · BelledonneCommunications/linphone-sdk · GitHub

2、定制codec顺序

这个是在app实现的,源码部分没太看明白,也找到了相关的 Issue,如下:

How to set order for audio codec with latest source? · Issue #62 · BelledonneCommunications/linphone-iphone · GitHub [Linphone-users] Linphone Android Codec priority

 按顺序设置参数即可

其实按照README步骤基本都能实现,主要还是网络环境得支持才行

  • 25
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS中引入linphone-sdk可以通过以下步骤: 1. 下载linphone-sdk:可以从linphone官方网站下载最新的linphone-sdk的压缩包。 2. 解压压缩包:将下载的linphone-sdk压缩包解压到目标文件夹中。 3. 创建新的Xcode工程:使用Xcode创建一个新的iOS工程。 4. 导入linphone-sdk到工程中:在Xcode中的工程导航栏中右键点击“Frameworks”文件夹,选择“Add Files to 'Your project name'”选项,然后导航到刚才解压的linphone-sdk文件夹中,选择liblinphone.xcodeproj文件,点击“Add”按钮。 5. 添加依赖库:点击Xcode中的工程导航栏,选择你的项目的target,在General选项卡中,找到“Linked Frameworks and Libraries”部分,点击“+”按钮,选择添加以下依赖库: - libiconv.tbd - libz.tbd - libsqlite3.0.tbd - AudioToolbox.framework - AVFoundation.framework - CoreAudio.framework - CoreVideo.framework - CoreGraphics.framework - CoreMedia.framework - VideoToolbox.framework - UIKit.framework - Foundation.framework - CFNetwork.framework - Security.framework - SystemConfiguration.framework 6. 配置Build Settings:点击Xcode中的工程导航栏,选择你的项目的target,在Build Settings选项卡中,找到“Header Search Paths”部分,添加linphone-sdk的头文件路径。 7. 配置Build Phases:点击Xcode中的工程导航栏,选择你的项目的target,在Build Phases选项卡中,展开“Target Dependencies”部分,点击“+”按钮,选择添加liblinphone iOS库。 8. 添加代码:在需要使用linphone-sdk的地方,引入头文件并编写相应的代码,如初始化linphone对象,注册账号等。 以上就是在iOS中引入linphone-sdk的一般步骤。根据具体情况可能会有一些特殊步骤或配置。了解linphone-sdk的文档和示例代码将有助于更深入地了解如何使用该SDK
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值