注册

手把手教你从零开始集成声网音视频功能(iOS版)

说明

1.环信音视频和声网音视频 是两个不同的系统,所以如果要切换的话,需要集成声网的sdk,环信音视频的sdk可以直接废弃

2.文章会介绍如何用声网的音视频跑通demo,可以了解整个音视频通话的流程,

3.文章会介绍已经集成了环信im功能如何在集成声网添加音视频功能

前提条件

1.有环信开发者账号和声网的开发者账号

2.macOS系统,安装了xcode集成环境

跑通Demo

1.下载iOS Demo 地址:https://www.easemob.com/download/im
9a2f7e6e9e19ea91588539991d3b8f84.jpg

2.我这边下载的是4.0.3 版本,如果你的Xcode 版本运行demo报错的话,先找到podfile文件打开注释,并加上:config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0’,如下图 ,在pod install
0c3bf1606118b35b13ba4f4075c1c448.jpg

3.为了测试方便可以先把这个appkey 配置成自己的
87cc0a3930b819c17a7eeb02cf537ec2.jpg

4.连续点击版本号,切换成账号密码登录,到此im部分完成
5f75cff1282854bc2a31dfc7828019ef.jpg

搭建App Server生成声网token

2.如果出现Starting server at port 8082 说明搭建成功
76c28146a5a00ead3bb2b497d97f3afe.png

3.在下图这里替换成自己声网的appid
324a5de5a15bd3ec45bdfea6e1b64a23.jpg

4.在callDidRequestRTCTokenForAppId 这个方法做一下修改,主要是换成你自己的服务器生成的token,
398a5c182c0bf6138ea49bcf39d6b0f0.jpg

5.以上修改完成就可以进行音视频通话了,如果通话正常可以去声网的控制台,看到通话记录。
4ce6e1df721d25ee061b44ba58ef7f5d.png

到此恭喜你跑通Demo

把声网集成到已有项目中

说明:如果你之前集成环信的音视频,那么就直接废弃掉,从头集成声网音视频,我这边从新建项目开始

1.新建项目,并添加相应的库,pod install 一下,添加麦克风和摄像头权限
7bd1aa6b52a154920c61016b1aa7818d.jpg

2.AppDelegate 文件里面进行环信初始化
7f3e47c555ed303e53adefb76d7892cb.jpg

3.使用xib 创建几个控件,并进行绑定
059826a418649c7ca94d99331efc9db8.jpg

4.在 login点击事件调登录操作,登录成功之后进行EaseCallManager 类的初始化

注意:EaseCallManager只能在登录成功之后才能初始化,要不然发起通话会报错

30346af96e4f280f41f2b210ff163af2.png

5.实现EaseCallDelegate代理方法,需要在callDidRequestRTCToken回调中,获取APPserver的token,并设置,如下图
e20576eb120e7d3445b3f1bc33424734.png

6.在call方法发起一对一视频通话,如下图
04c69b6f8e6859533de59f1d4d97ddc3.png

至此 代码完成,可以运行在两台设备上查看效果,如果能正常进行视频通话,那么恭喜你集成成功

总结

1.在环信控制台创建im项目,拿到appkey

2.在声网控制台创建音视频项目拿到appid 和 appCertificate

3.参考声网给的go语言的APPserver示例,全部复制下来,填上声网的appid 和 appCertificate,就直接运行

4.创建iOS项目,集成

pod 'AgoraRtcEngine_iOS/RtcBasic' //声网音视频库

pod 'HyphenateChat', '~> 4.0.3' //环信im库

pod 'EaseCallKit' //环信IMSDK作为信令封装的声网音视频SDK通话带UI组件库

这三个库

5.AppDelegate 文件里面进行环信初始化填上环信的appkey

6.登录成功的方法里面初始化EaseCallManager

7.发起视频通话邀请

8.邀请方和被邀请方都会走 func callDidRequestRTCToken(forAppId aAppId: String, channelName aChannelName: String, account aUserAccount: String, uid aAgoraUid: Int)
这个加入音视频通话频道前触发该回调,在这个回调函数里面获取各自的声网token,然后调用setRTCToken:channelName:方法将token设置进来

完毕

参考链接

0 个评论

要回复文章请先登录注册