linphone最新搭建-傾城孤月

一 . 編譯

具體編譯過程可參考我以前的文章:快速移植Linphone到本身的項目, 固然若是不想花費那麼多時間編譯下載子模塊的, 能夠到百度網盤進行下載, 提供兩種方式的SDK:git

  1. .a形式的SDK, 就是老版的打包方式,連接:https://pan.baidu.com/s/1bplNAMz密碼:qmm8
    2.Framework形式的SDK, 就是最新使用的打包方式,連接: https://pan.baidu.com/s/1gfth80z密碼: 58bp
    今天咱們要講的是第二種方式的移植, 能夠先看一下官網的教程:

After the SDK has been built, add all the .framework files located in liblinphone-sdk/apple-darwin/Frameworks to your XCode project Embedded Frameworks. Add a Run Script step to your build steps, put it after your step to embed frameworks, set it to use our deploy.sh script located in liblinphone-sdk/apple-darwin/Tools.github

官網寫的比較簡潔, 大意就是把SDK拖入工程裏面, 而後添加個腳本, 就完事了. 但事實並非這麼簡單, 還須要作一些額外的設置才行. 接下來是咱們的移植過程xcode

二 . 移植

  1. 下載完Framework版本的SDK後, 先把SDK拷貝到跟項目同一目錄下, 咱們只須要用到liblinphone-sdk下的apple-darwin這個文件夾便可, 其餘的不須要x86_64這些不須要, 以下圖:
拷貝SDK.png

2.連接一下Framework, Build Phases->Link Binary With Libraries, add + :ruby

Link Binary.png
Add other.png
選上Framework.png

3.設置一下Header Search Paths:架構

Header Search Paths.png

設置爲include文件的目錄:app

$(SRCROOT)/liblinphone-sdk/apple-darwin/include 
設置一下Header Search Paths.png

4.運行一下, 看下可否編譯運行, 出現如下結果:框架

QQ20170930-091439.png

嗯... 看來還沒配置完成.若是出現image not found, 則須要第五步
5.添加embedded Frameworkide


點擊"+"

把Frameworks下的全部都選上, 上圖不是指添加一個而是添加全部(截圖有點問題)

添加完以後效果圖

6.再運行一下,沒有任何報錯, good job.
7.設置pch文件
若是項目自己已經有了pch文件, 則不需重複添加pch, 而沒有pch文件的, 則須要添加一下, 具體教程可百度之. 而後在pch添加如下代碼, 目的主要是, SDK裏面引用了Cocoa裏面的一些框架但沒引用相關頭文件, 不全局添加Foundation跟UIKit會報錯.ui

#ifdef __OBJC__ #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> #endif 

8.添加一下linphonemanager的頭文件, 本人已從linphone-demo抽離單獨的linphonemanager, 具體請點擊github連接. 而後開啓linphone-core:spa

QQ20170930-101421.png

能夠成功開啓core.

在這裏解釋一下, LinphoneManager這個文件主要封裝了開啓核心, 進行一些基本的初始化設置, 還有處理一些定時器的事件等. 因爲官方demo的LinphoneManager綁定了demo其餘的一些功能業務, 因此須要咱們進行抽離. 而SMLinphoneConfig這個文件則是本人封裝了些註冊方法, 還有打電話方法, 可直接註冊註冊還有打電話.

9.添加一些額外的設置
首先在Finder中, 把Resources跟Tools兩個文件夾拷貝到工程目錄下, 而後用下面的方法(Add Files to)添加進項目根目錄裏面, 根目錄裏面, 根目錄裏面, 重要的事情說三遍, 添加Linphone官方Demo的兩個文件夾:

Finder裏面拷貝粘貼
用Add Files進行添加
添加進工程

Resources文件裏面包含一些配置文件, Tools包含一些腳本配置文件.


放到工程根目錄下.png

1)添加對Framework進行瘦身的腳本, 主要做用就是在上架的時候, 去掉SDK包裏面的不須要的x86_64框架, 目前集成過程當中可選. 在上架的時候, 可本身手動去除, 搜索lipo -remove命令便可.


設置腳本路徑.png

2)設置資源文件
QQ20170930-103554.png

linphonerc以及linphonerc-factory爲系統默認的一些參數配置文件, 開發者能夠直接對一些參數進行修改, 如linphonerc下的:

解釋一下: linphonerc裏面的配置是持久化配置, 就是說在第一次安裝APP以後起效, 換句話說, APP已經安裝了一次以後, 之後在xcode改了這個文件配置以後, 而後再運行, 是不會起效的. 若是想要即時起效, 須要修改linphonerc-factory這個文件, 若是想要linphonrc這個文件起效, 須要卸載重裝才能起效, 這點要注意下.

[sound]
capture_dev_id=AU: Audio Unit Receiver
eq_active=0
playback_dev_id=AU: Audio Unit Receiver

[video]
automatically_accept=1
automatically_initiate=1
capture=1
display=1
enabled=1
show_local=0
size=qvga

具體參數意義能夠參考linphone-demo的相關頁面, 在此不展開說明.
另一些sounds文件能夠替換爲自家的音頻文件.
開啓核心的時候, 若是控制檯出現如下錯誤, "Can't find "(null)":", 說明linphone沒找linphonerc的這個配置文件, 從新檢查第10步有沒有正確導入兩個資源文件.

 
"Can't find "(null)":"

. 一些連接:

linphonemanager精簡文件可到GitHub下載, 下載地址
demo可加羣下載, 歡迎交流討論, QQ羣號: 578410849
10.17日補充, 完整linphone-demo, 可直接編譯版本, 版本號:3.16.5,百度網盤
連接: https://pan.baidu.com/s/1bo7nGCZ密碼: uju9MD5: 75023f5c0f31beb3f3e7617d5b79018b11.13更新補充, 發現那個瘦身腳本在打包的時候不起做用, 不知是什麼緣由, 就是在打包過程當中, 會報錯. 間接處理方式就是使用lipo -remove命令對SDK進行瘦身, 去除x86_64這個架構. 如網友遇到相同的問題, 而且有好的解決方法, 留下您的寶貴意見. 感謝

相關文章
相關標籤/搜索