window下使用msys2编译pjsip android

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

首先需要对pjsip有一个简单的认识,PJSIP是一个开放源代码的SIP协议栈。它支持多种SIP的扩展功能,目前可说算是最流行的sip协议栈之一了。

需要下载的软件:

pjsip:http://www.pjsip.org/ (在这里有window和linux下面的两个版本,两个都下载)

pjsip android:https://trac.pjsip.org/repos/wiki/Getting-Started/Android (配置说明)

msys2:http://www.msys2.org/ (这个是用来在window下面执行gcc和Linux下面的命令)

swig:http://swig.org/ (这个是用来把c的代码包装成java的接口,在Android里面调用)

ndk:https://developer.android.google.cn/ndk/downloads/ (ndk的版本需要下载r13b这个版本,如果你下载的其他高版本的ndk,使用的是clang的编译器会导致各种问题无法编译,r18之后官网说会移除gcc编译器)

android sdk:https://developer.android.google.cn/studio/preview/ (这个是不用的网站可以下载android studio 里面自带的sdk)

android studio:https://developer.android.google.cn/studio/preview/

java sdk:http://www.oracle.com/technetwork/java/javase/downloads/index.html (直接下载)

配置:

JAVA_HOME配置java的安装路径,android sdk感觉在android studio里面配置一下就行了,pjsip直接解压就好了,ndk也是直接解压。

msys2的配置根据官网上的信息就是升级一下本地的数据库然后就是安装gcc,

msys2有三个不同的执行环境:mingw64,mingw32,msys2,根据你的电脑选择安装gcc,我是全都装了一遍,之后安装make,swig。使用命令pacman -S安装这些软件。

编译pjsip:

接下来就是需要编译pjsip,打开mingw64.exe,在pjsip工程里面G:\pjproject-2.7.2\pjlib\include\pj新建一个config_site.h如果你只是编译这个平台下,就可以里面全是空的,如果是android下面的就添加以下内容:

define PJ_CONFIG_ANDROID 1

#include

添加完后就可以开始编译程序了,截图如下:

APP_PLATFORM=android-19 ./configure-android

我这边设置了android平台的等级,一般在sdk里面需要有这个目标平台的sdk。

平台不要选错了,如果没有指定平台默认就是最大的那个。

像这样就是配置完了,开始编译

make dep && make clean && make

差不多这样就可以了,编译成功了,可以到目录里面看看是不是有so文件。

接下来就是编译android的工程。

在这个目录里面执行make

之后so文件就会放在那个Android的工程里面了。

打开android sudio打开里面java的目录里面有个android的工程,build apk

然后就可以在手机上安装:

window下使用msys2编译pjsip android_第1张图片

然后就可以连接试试看效果了。

openh264项目的编译

地址:https://github.com/cisco/openh264

NASM:http://www.nasm.us/ (需要安装)

编译openh264需要在linux环境下,电脑里面需要安装ant软件,android sdk,android ndk(ndk版本是r13的版本跟pjsip使用的一样)

下载完成后在工程的文件夹里面新建一个android的文件夹,这个文件夹用来把编译成功后的那些库和头文件放到这里。

window下使用msys2编译pjsip android_第2张图片

修改make文件指定make install命令安装的路径

window下使用msys2编译pjsip android_第3张图片

接下来直接编译程序

window下使用msys2编译pjsip android_第4张图片

在这里需要指定ndk的路径,ndk里面的android api的版本要在ndk里面要存在,最后一个命令install就是把编译后的结果保存到刚才的android文件夹里面。

把这里面的文件需要都复制,直接复制android文件夹的内容,在window里面使用msys2来编译的时候,需要在config_site.h添加#define PJMEDIA_HAS_VIDEO 1

编译的时候需要指定openh264的位置(就是那个android文件夹的路径)

./configure-android --with-openh264=**/android

出现提醒就说明配置没有问题

Using OpenH264 prefix… /Users/me/openh264/android

checking OpenH264 availability… ok

我之前只复制了so文件然后就各种不行。

在那个android工程里面添加so文件就可以了。

转载于:https://my.oschina.net/u/2000932/blog/1822353

你可能感兴趣的:(移动开发)