博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[教程] 使用 Agora SDK 实现视频对话应用 HouseParty - 附 iOS 源码
阅读量:5994 次
发布时间:2019-06-20

本文共 2852 字,大约阅读时间需要 9 分钟。

系列教程:


最近有一款应用很火,叫Housparty,Housparty是一款视频群聊应用,最近它在App Store上的下载排名已经超过了Facebook。同时,有媒体称Houseparty已经完成了最新一轮的投资。自己就想着模仿一个玩玩,研究了下,发现有个叫Agora的可以实现部分的功能,就想试用下。

声网Agora.io是一家提供稳定,高可用,有质量保障的实时视频通话和实时全互动直播技术服务的平台,支持全平台,只需要简单集成SKD,即可让应用实现高清视频通话,和多主播实时全互动直播。
既然已经有了SDK,就不需要自己写视频以及通信部分的代码了,这样写一个Housparty的demo就更简单了,下面以iOS平台为例,看下如何集成Agora SDK

环境准备

本文使用的环境如下:

  • XCode 8.3.1
  • 最小SDK iOS 9.3
  • 真机
  • Swift语言

先要注册agora.io,注册完成之后再新建一个项目,需要拿到对应的App ID。后面的示例代码需要使用该App ID

最新的Agora SDK中有两个文件夹:

  • ./libs 中含有的是所需的库(集成到App需要的)
  • ./samples 包含Open Video Call 和 Open Live的代码示例

需要的环境准备好之后,新建一个agora项目,就可以开始配置和集成Agora SDK

添加SDK

先把Agora SDK中./libs复制到agora项目中的agora目录下。再把Agora SDK添加到项目的Libraries中。

添加Libraries的方法:

  1. 选中当前Target(agora)
  2. Build Phases
  3. Link Binary With Libraries
  4. 点击+

Link Binary
这个时候出现的界面是添加系统类库的,选择
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 arm64clang: 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复制代码

问题的原因是:编译时找不到需要的链接库导致的,解决方法:

  1. 选中当前Target(agora)
  2. Build Settings
  3. Search Paths
  4. Library Search Paths
  5. 新增"${PROJECT_DIR}/agora/libs"

Library Search Paths
另外
Agora SDK并不支持
bitcode,因此需要把bitcode禁止掉,禁止bitcode的方法:
  1. 选中当前Target(agora)
  2. Build Settings
  3. Build Options
  4. Enable Bitcode ->No

bitcode

这样就配置完成了Agora SDK的支持,下面就可以开始使用Agora SDK了。

访问OC类库

Agora SDK使用的是Object-c开发的,而我们的项目使用的是Swift开发的,因此就需要在Swift中访问OC的类库,新建一个文件命名为agora-Bridging-Header.h,在该文件中引入Agora SDK:

#import 
#import
复制代码

然后把该文件设置为Objective-C Bridging Header,设置方法:

  1. 选中当前Target(agora)
  2. Build Settings
  3. Swift Compiler-General
  4. Objective-C Bridging Header
  5. agora/agora-Bridging-Header.h

oc bridging
这样能在
Swift中使用
Agora SDK了。
在开始调用
Agora SDK之前还要知道,
Agora SDK实现的是一套高清视频通话或直播系统,除了完成集成
Agora SDK的工作之外,还需要给项目对应的访问权限。

权限

需要给项目两个权限才能使用Agora SDK,这两个权限是:

  • 相机
  • 麦克风

info.plist添加这两个权限:

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,包含的功能:

  1. 创建room
  2. 分屏,2分屏、4分屏、6分屏
  3. 窗口切换
  4. 前后摄像头切换

项目地址:

转载地址:http://nkxlx.baihongyu.com/

你可能感兴趣的文章
YII2中查询生成器Query()的使用
查看>>
Docker 创建镜像、修改、上传镜像
查看>>
[Tailwind] Style Elements on hover and focus with Tailwind’s State Variants
查看>>
基于Token认证的多点登录和WebApi保护
查看>>
区分不同操作系统、编译器不同版本的宏
查看>>
【强化学习】python 实现 q-learning 例三(例一改写)
查看>>
Ajax学习笔记
查看>>
Java 内存区域和GC机制
查看>>
迁向云端
查看>>
打靶算法分析
查看>>
WCF从理论到实践(16):操作重载(带视频+ppt+源码)
查看>>
CSharp tar类型文件压缩与解压
查看>>
python中文注释及输出出错
查看>>
近日学习Cache,搜集到的一个Demo下载[不断修改、讨论]
查看>>
C#调用C++写的Dll时的运行时错误解决
查看>>
Ubuntu下如何进入终端命令行
查看>>
步步为营UML建模系列五、时序图(Squence diagram)
查看>>
【转】iOS平台安装包介绍
查看>>
GIS工具-shp浏览器
查看>>
.NET Core微服务之基于Steeltoe使用Hystrix熔断保护与监控
查看>>