WebRTC sdk 封裝踩過的那些坑

2021-09-13 09:07:14 字數 985 閱讀 7651

背景資訊:csdn第一篇部落格

思路:可選方案1: 從頂層peerconnection介面啟用,此方案需要涉及大量ice及sdp資訊的交換,理解與流程梳理,成本高,放棄;

綜合考慮,選擇方案2. 也有從更底層的call層api進行sdk封裝的考慮,可以後續考察,可能靈活性強於mediaenging,工作量會增加一些,隨著對webrtc理解的逐漸深入,後續可以重點考察。

win 版本具體思路,封裝動態庫,呼叫webrtc media介面:

vs 工程生成步驟:

1,  通過vs2017開啟cmd 終端

2,set depot_tools_win_toolchain=0

3. 建立特定的目錄,配置args.gn:

gn生成vs2017檔案時,具體引數如下:

target_os="win" target_cpu="x86" is_component_build=false is_clang=false use_rtti=true

注意:win版本不能使用clang編譯器,雖然使用clang也可以編譯通過,但在自定義的vs工程中無法直接使用webrtc的靜態庫(會有一些異常crash問題)

4. 自建dll工程,可以直接引用libwebrtc.a, 呼叫webrtc功能。

android版本思路與win版本一樣,sdk封裝成so,再引用到android studio中

1. 通過修改gn指令碼檔案,生成sdk編譯指令碼,ninja檔案,然後通過ninja編譯

2. gn基本知識網路上很多,有幾個要點這裡提一下;

關於生成so的匯出函式,指令碼中一定要加上下面一行,否則,無法匯出純c的介面函式:

suppressed_configs += [ "//build/config/android:hide_all_but_jni_onload" ]

踩坑經驗,使用ndk編譯so引入webrtc靜態庫的方案,坑太多,建議把經歷放在gn、ninja編譯環境上,筆者**半個月得出此經驗。

未完待續    

Nodejs專案部署與踩過的那哪些坑

nodejs專案部署與踩過的那哪些坑 一 專案背景 團隊中基於nodejs開發的專案,由於專案需要,要部署一套測試開發環境,之前正式線是一位大牛部署,由於某些原因這塊現在需要自己處理部署。本人之前完全沒接觸過linux,所以在部署測試開發環境過程中也是踩了好多坑,寫篇雜記做個記錄。二 部署準備 1....

關於STM32與OpenMv通訊踩過的那些坑(2)

不好意思!因為這幾天要準備專案答辯,比較忙,所以沒能及時更新。不過,雖然這種led除錯方法讓串列埠中斷產生了異常,但它確實幫助我查出了openmv方面的錯誤!接下來我將先和大家分享我利用led除錯,檢查出openmv方面錯誤的步驟。下面展示一些內聯 片。使用正點原子串列埠實驗源 void usart...

git踩過的坑

4.git 修改當前的project的使用者名稱的命令為 git config user.name 你的目標使用者名稱 git 修改當前的project提交郵箱的命令為 git config user.email 你的目標郵箱名 如果你要修改當前全域性的使用者名稱和郵箱時,需要在上面的兩條命令中新增...