系列教程:javascript
最近有一款應用很火,叫Housparty
,Housparty是一款視頻羣聊應用,最近它在App Store上的下載排名已經超過了Facebook。同時,有媒體稱Houseparty已經完成了最新一輪的投資。本身就想着模仿一個玩玩,研究了下,發現有個叫Agora
的能夠實現部分的功能,就想試用下。聲網Agora.io
是一家提供穩定,高可用,有質量保障的實時視頻通話
和實時全互動直播技術
服務的平臺,支持全平臺,只須要簡單集成SKD,便可讓應用實現高清視頻通話,和多主播實時全互動直播。
既然已經有了SDK,就不須要本身寫視頻以及通訊部分的代碼了,這樣寫一個Housparty
的demo就更簡單了,下面以iOS平臺爲例,看下如何集成Agora SDK
。java
本文使用的環境以下:c++
先要註冊agora.io
,註冊完成以後再新建一個項目,須要拿到對應的App ID
。後面的示例代碼須要使用該App ID
。
最新的Agora SDK
中有兩個文件夾:git
須要的環境準備好以後,新建一個agora
項目,就能夠開始配置和集成Agora SDK
。github
先把Agora SDK中./libs
複製到agora項目中的agora目錄下。再把Agora SDK添加到項目的Libraries
中。
添加Libraries
的方法:swift
Add Other ...
從項目目錄中選中
./libs
添加里面的內容到
Libraries
中。這樣就添加了
Agora SDK
。
Agora SDK
以後,還須要添加
Agora SDK
所依賴的庫,參考官網上面demo使用的
libraries
,添加如下類庫:
build
的時候出現錯誤:ide
Showing All Messages
"_res_9_getservers", referenced from:
agora::commons::network::get_dns_list(bool) in AgoraRtcEngineKit(libmediasdk.a-arm64-master.o)
"_res_9_ninit", referenced from:
agora::commons::network::get_dns_list(bool) in AgoraRtcEngineKit(libmediasdk.a-arm64-master.o)
"_res_9_ndestroy", referenced from:
agora::commons::network::get_dns_list(bool) in AgoraRtcEngineKit(libmediasdk.a-arm64-master.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)複製代碼
運行官網的demo也出現了一樣的錯誤,說明類庫沒有導入完整,還須要導入類庫是libresolv.9.tbd
。
類庫依賴問題比較容易出現,另外一方面也說明沒有支持Pod
的麻煩,建議Agora
能儘快支持CocoaPods
。
再次build
又出現了個問題:post
ld: library not found for -lcrypto複製代碼
問題的緣由是:編譯時找不到須要的連接庫致使的,解決方法:ui
"${PROJECT_DIR}/agora/libs"
Agora SDK
並不支持
bitcode,所以須要把bitcode禁止掉,禁止bitcode的方法:
這樣就配置完成了Agora SDK
的支持,下面就能夠開始使用Agora SDK
了。spa
Agora SDK
使用的是Object-c
開發的,而咱們的項目使用的是Swift
開發的,所以就須要在Swift
中訪問OC的類庫
,新建一個文件命名爲agora-Bridging-Header.h
,在該文件中引入Agora SDK
:
#import <AgoraRtcEngineKit/AgoraRtcEngineKit.h>
#import <AgoraRtcCryptoLoader/AgoraRtcCryptoLoader.h>複製代碼
而後把該文件設置爲Objective-C Bridging Header
,設置方法:
Swift
中使用
Agora SDK
了。
Agora SDK
以前還要知道,
Agora SDK
實現的是一套高清視頻通話或直播系統,除了完成集成
Agora SDK
的工做以外,還須要給項目對應的訪問權限。
須要給項目兩個權限才能使用Agora SDK
,這兩個權限是:
在info.plist
添加這兩個權限:
Privacy - Camera Usage Description
設置爲:use camera to start video call
Privacy - Microphone Usage Description
設置爲use microphone to start video call
這樣完成了Agora SDK
的項目配置,後面將繼續寫如何使用Agora SDK
,包含的功能: