pjsip库编译Android SO
前期准备
参考 Openh264库编译 编译 openh264 库,将生成的libs文件夹复制到pjsip工程根路径下(或者后续自行配置)
配置相关环境
sudo apt-get install swig
下载源码
git clone git@github.com:pjsip/pjproject.git
修改配置问题
在 工程路径/pjlib/include/pj 下,新建文件config_site.h,写入以下内容
#define PJ_CONFIG_ANDROID 1
//To enable video
#define PJMEDIA_HAS_VIDEO 1
//To enable libyuv
#define PJMEDIA_HAS_LIBYUV 1
//To enable TCP transport
#define PJ_HAS_TCP 1
#include <pj/config_site_sample.h>
在 pjmedia/src/pjmedia-audiodev 下面有 coreaudio_dev.m 文件,没有对应的.c文件,添加 coreaudio_dev.c
cd pjmedia/src/pjmedia-audiodev && touch coreaudio_dev.c && cat coreaudio_dev.m > coreaudio_dev.c
编译
编译命令如下
TARGET_ABI=arm64-v8a
NDK_TOOLCHAIN_VERSION=4.9 TARGET_ABI=arm64-v8a APP_PLATFORM=android-22 ./configure-android --use-ndk-cflags --with-openh264=${pwd}/libs/${TARGET_ABI}/
上诉指令执行完成后,执行以下命令执行android代码生成
cd pjsip-apps/src/swig && make clean && make
执行成功后用 AS 打开 pjproject\pjsip-apps\src\swig\java\android 工程,运行即可
问题
- 编译完成后,双方通话无声音,需要加入以下代码
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setSpeakerphoneOn(true);