pjsip在android下的使用

2021-10-04 13:21:32 字數 1968 閱讀 7523

demo執行

公司招了個android,讓我進行協助。我主要是把pjsip庫的android版給編譯出來。

當前時間是2023年3月30日。

此時pjsip的2.10版本已經發布一段時間了,但是2.10版本有點問題,裡面的demo都執行不起來(windows + qt)。因此這裡我編譯用的還是2.9版本。

主要參考的這裡,裡面的問題還是很多的。

建議使用mac編譯;用windows也行(使用msys2),就是配置起來可能有點麻煩。

注意點:

1,android_ndk_root值的設定

我用了

android_ndk_root=/users/robin/android-ndk-r14b
最新版的是 android-ndk-r21,採用r21編譯的時候回報錯,size_t未定義啥的。r20b、r19c都有問題。

r13b也是可行的。

據說執行configure-android時指定了編譯的工具鏈的版本4.9及以下就可以了。我沒試~

2,生成庫的架構問題。

建議都生成一遍:armeabi 、arm64-v8a、armeabi-v7a、x86,

跟文中說的一樣,使用如下的字串。

target_abi=armeabi-v7a ./configure-android --use-ndk-cflags

make clean

make dep

make

3,編譯 libpjsua2.so

安裝swig。

我們用的也就是這個libpjsua2.so檔案。

按照那個文件編譯就是了。

2,修改目標sdk

這一步不是必須的,看運氣。

之前這裡我設定的都是26,結果在nokia7 和 魅族x8 沒問題。redminote7上就不行,報 「audioflinger could not create record track」 的錯誤。也就是麥克風開啟失敗

網上說沒有加錄音許可權,結果發現我已經加了,不關這個原因。

據說有兩種解決辦法:

a,sdk版本寫的低一點,例如:22。

如果沒有用到高階特性的話,還是用21或者22吧,這代表的是android 5,如果再低的話,到了android4.4 很多特性就不支援了。

android 6就加了很多許可權了。

參考b,新增

就是新增數字簽名。我偶然看到的,沒試~參考

3, 解決androidstudio編譯出現"could not resolve all files for configuration 』

在 專案gradle的allprojects中新增google()如圖:

參考填寫的資料如下圖所示

然後就能進行嘗試呼叫了。

可能會有點問題。我有點忘記了,我將音訊編碼的pcma、pcmu放到了最前面。

還有可能會報:

no candidate acl defined, defaulting to wan.auto
的錯誤,

按照這裡來改。

我只新增了第一行。就解決這個問題了。

在Mac下編譯Android原始碼

1.原始碼存放 在mac下編譯android的源 需要乙個大小寫敏感 case sensitive 的分割槽格式如果你原來的分割槽不是hfs一類大小寫敏感的檔案格式,那麼最簡單的辦法就是新建乙個這種分割槽格式的dmg出來,命令如下 sudo hdiutil create size 15g type ...

在Linux下交叉編譯Android工具鏈

android ndk linux 64 bit x86 android ndk r9d linux x86 64.tar.bz2。解壓android ndk r9d linux x86 64.tar.bz2 到任意路徑 3.生成 toolchain 的文件可以參考 docs standalone ...

pjsip的編譯及簡單使用

2.編譯 目錄下的readme.txt檔案中有編譯說明,關於windows下的注意點如下 building win32 target with microsoft visual studio 新建乙個空檔案pjlib include pj config site.h後,編譯pjsua工程出現以下錯誤...