本文使用的环境如下:
XCode 8.3.1
最小SDK iOS 9.3
真机
Swift语言
最新Agora SDK
申请AppID
先要注册agora.io
,注册完成之后再新建一个项目,需要拿到对应的App ID
。后面的示例代码需要使用该App ID
。
最新的Agora SDK
中有两个文件夹:
./libs 中含有的是所需的库(集成到App需要的)
./samples 包含Open Video Call 和 Open Live的代码示例
需要的环境准备好之后,新建一个agora
项目,就可以开始配置和集成Agora SDK
。
先把Agora SDK中./libs
复制到agora项目中的agora目录下。再把Agora SDK添加到项目的Libraries
中。
添加Libraries
的方法:
选中当前Target(agora)
Build Phases
Link Binary With Libraries
点击+
这个时候出现的界面是添加系统类库的,选择Add Other ...
从项目目录中选中./libs
添加里面的内容到Libraries
中。这样就添加了Agora SDK
。
在添加Agora SDK
之后,还需要添加Agora SDK
所依赖的库,参考官网上面demo使用的libraries
,添加以下类库:
CoreTelephony.framework
CoreMedia.framework
VideoToolbox.framework
AudioToolbox.framework
AVFoundation.framework
libc++.tbd
build
的时候出现错误:
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
又出现了个问题:
ld: library not found for -lcrypto
问题的原因是:编译时找不到需要的链接库导致的,解决方法:
选中当前Target(agora)
Build Settings
Search Paths
Library Search Paths
新增"${PROJECT_DIR}/agora/libs"
另外Agora SDK
并不支持bitcode,因此需要把bitcode禁止掉,禁止bitcode的方法:
选中当前Target(agora)
Build Settings
Build Options
Enable Bitcode ->No
这样就配置完成了Agora SDK
的支持,下面就可以开始使用Agora SDK
了。
Agora SDK
使用的是Object-c
开发的,而我们的项目使用的是Swift
开发的,因此就需要在Swift
中访问OC的类库
,新建一个文件命名为agora-Bridging-Header.h
,在该文件中引入Agora SDK
:
#import
#import
然后把该文件设置为Objective-C Bridging Header
,设置方法:
选中当前Target(agora)
Build Settings
Swift Compiler-General
Objective-C Bridging Header
agora/agora-Bridging-Header.h
这样能在Swift
中使用Agora SDK
了。
在开始调用Agora SDK
之前还要知道,Agora SDK
实现的是一套高清视频通话或直播系统,除了完成集成Agora SDK
的工作之外,还需要给项目对应的访问权限。
需要给项目两个权限才能使用Agora SDK
,这两个权限是:
相机
麦克风
Privacy - Camera Usage Description
设置为:use camera to start video call
Privacy - Microphone Usage Description
设置为use microphone to start video call
这样完成了Agora SDK
的项目配置,后面将继续写如何使用Agora SDK
,包含的功能:
创建room
分屏,2分屏、4分屏、6分屏
窗口切换
前后摄像头切换