Agora iOS SDK-快速入门

作者: 姜家志 | 来源:发表于2017-04-11 15:17 被阅读2131次

    最近有一款应用很火,叫Housparty,Housparty是一款视频群聊应用,最近它在App Store上的下载排名已经超过了Facebook。同时,有媒体称Houseparty已经完成了最新一轮的投资。自己就想着模仿一个玩玩,研究了下,发现有个叫Agora的可以实现部分的功能,就想试用下。
    声网Agora.io是一家提供稳定,高可用,有质量保障的实时视频通话和实时全互动直播技术服务的平台,支持全平台,只需要简单集成SKD,即可让应用实现高清视频通话,和多主播实时全互动直播。
    既然已经有了SDK,就不需要自己写视频以及通信部分的代码了,这样写一个Housparty的demo就更简单了,下面以iOS平台为例,看下如何集成Agora SDK

    环境准备

    本文使用的环境如下:

    先要注册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 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
    

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

    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 <AgoraRtcEngineKit/AgoraRtcEngineKit.h>
    #import <AgoraRtcCryptoLoader/AgoraRtcCryptoLoader.h>
    

    然后把该文件设置为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. 前后摄像头切换

    项目地址:https://github.com/jjz/agora-swift

    相关文章

      网友评论

      • chenjipdc:Housparty还是Houseparty,第一个是不是写错了:flushed:

      本文标题:Agora iOS SDK-快速入门

      本文链接:https://www.haomeiwen.com/subject/rstjattx.html