iOS
一、快速开始
集成指南
适用范围
本集成文档适用于iOS RTCallEngine SDK 2.0.0 ~ 3.0.2版本。
准备环境
Xcode 9.0+。
iOS 8.0+ 真机(iPhone 或 iPad)。
请确保你的项目已设置有效的开发者签名。
导入SDK
CocoaPods导入
通过 Cocoapods 下载地址:
如果需要安装指定版本则使用以下方式(以 3.0.2 版本为例):
手动导入
打开General->Embedded Binaries中添加RTCallEngine.framework
权限说明
使用RTCallEngine SDK 前,需要对设备进行授权。打开 info.plist ,点击 + 图标开始添加:
添加设备使用「网络」的权限
添加设备使用「相机」的权限
添加设备使用「麦克风」的权限
后台模式(Background Modes)
勾选Audio, AirPlay and Picture in Picture
开发指南
1. 初始化SDK
集成SDK后,还需对SDK进行初始化操作,建议在AppDelegate中完成。
1.1 导入头文件
1.2 配置开发者信息
示例代码:
2. 加入房间
2.1 实例化用户对象
调用initWithDelegate:方法实例化用户对象,需实现ARCallKitDelegate中的回调方法。
示例代码:
2.2 用户上线
示例代码:
3. 呼叫场景
P2P呼叫可分为呼叫用户、群组、客服,详见3.1、3.2、3.3。
3.1 呼叫用户
调用makeCallUser:option:方法用于呼叫用户,第二个参数option为用户配置信息,配置信息包含呼叫模式。
呼叫模式分为:
音视频呼叫(AR_Call_Video)
视频优先呼叫(AR_Call_VideoPro)
音频呼叫(AR_Call_Audio)
示例代码:
3.2 呼叫群组
调用makeCallGroup:option:方法用于呼叫群组,第二个参数option为群组配置信息,包含主叫用户信息、呼叫用户数组和扩展信息。
示例代码:
3.3 呼叫客服场景(客户端)
调用makeCallQueue:option:方法用于呼叫客服,第二个参数option为呼叫配置信息,包括呼叫类型、用户信息、 等级、区域、交易类型。
示例代码:
4. 呼叫相关
4.1 设置本地显示窗口
调用setLocalVideoCapturer:option:方法设置本地显示窗口,第二个参数option为音视频配置项,包含视频帧率、码率、相机类型等。
示例代码:
4.2 设置其他视频显示窗口
调用setRemoteVideoRender:renderId:方法设置其他人视频显示窗口,用于收到对方视频即将显示(onRTCOpenRemoteVideoRender)的回调时调用。
示例代码:
4.3 同意呼叫
调用acceptCall:方法用于收到呼叫请求回调时(onRTCMakeCall:)同意呼叫。
示例代码:
4.4 挂断通话
调用endCall:方法用于挂断呼叫。
示例代码:
4.5 清空会话
调用close方法用于清空当前会话,可在离开房间时调用。
示例代码:
二、API接口文档
ARCallEngine 接口类
1. 配置开发者信息
定义
参数
参数名
类型
描述
appId
NSString
appId
token
NSString
token
说明
2. 配置私有云
定义
参数
参数名
类型
描述
address
NSString
私有云服务地址
port
int
私有云服务端口
说明
配置私有云信息,当使用私有云时才需要进行配置,默认无需配置。
3. 获取SDK版本号
定义
返回值
RTCallEngine SDK 版本号。
4. 设置打印日志级别
定义
参数
参数名
类型
描述
levelModel
ARLogModel
日志级别
ARCallKit 接口类
1. 实例化Call对象
定义
参数
参数名
类型
描述
delegate
id
RTC相关回调代理
2. 设置客服
定义
参数
参数名
类型
描述
queueId
NSString
队列Id
option
ARClertOption
客服配置
说明
需放在上线(turnOn)之前使用。
3. 上线
定义
参数
参数名
类型
描述
token
NSString
令牌:客户端向自己服务申请获得,参考企业级安全指南
userId
NSString
用户Id,确保平台唯一,不能为空
userData
NSString
用户信息自定义信息
4. 下线
定义
5. 设置本地显示窗口
定义
参数
参数名
类型
描述
render
UIView
本地视频窗口
option
ARCallOption
配置项
说明
必须放到 makeCall方法之后调用或者收到onRTCMakeCall回调之后调用。
6. 设置滤镜
定义
参数
参数名
类型
描述
filter
ARCameraFilterMode
滤镜模式
说明
只有使用美颜相机模式才有用。
7. 设置其他视频显示窗口
定义
参数
参数名
类型
描述
render
NSString
视频显示窗口
renderId
NSString
渲染Id
8.设置某个人的显示模式
定义
参数
参数名
类型
描述
renderMode
ARVideoRenderMode
显示模式,默认ARVideoRenderScaleToFill,等比例填充视图模式
renderId
NSString
渲染Id
9. 呼叫用户
定义
参数
参数名
类型
描述
userId
NSString
呼叫的用户Id
option
ARUserOption
配置项
返回值
操作是否成功。0:成功;-1:操作频繁;-2:不能呼叫自己;-3:呼叫列表不能为空;-4:呼叫session已存在;-5:呼叫ID不能为空:-6:userData:超过1024个字节:-7: ARCallKit还未初始化。
10. 呼叫群组
定义
参数
参数名
类型
描述
groupId
NSString
群组Id
option
ARGroupOption
配置项
返回值
操作是否成功。0:成功;-1:操作频繁;-2:不能呼叫自己;-3:呼叫列表不能为空;-4:呼叫session已存在;-5:呼叫ID不能为空:-6:userData:超过1024个字节:-7:ARCallKit还未初始化
11. 呼叫客服
定义
参数
参数名
类型
描述
queueId
NSString
队列
option
NSString
呼叫配置
返回值
操作是否成功。0:成功;-1:操作频繁;-2:不能呼叫自己;-3:呼叫列表不能为空;-4:呼叫session已存在;-5:呼叫ID不能为空:-6:userData:超过1024个字节:-7:ARCallKit还未初始化。
12. 邀请用户
定义
参数
参数名
类型
描述
userId
NSString
用户Id
返回值
操作是否成功 0:成功; -1:userId为空;-2:不是会议类型不能调用;-3:ARCallKit还未初始化。
说明
只有建立会议呼叫之后才能调用。
13. 挂断通话
定义
参数
参数名
类型
描述
userId
NSString
呼叫的用户Id
14. 同意通话
定义
参数
参数名
类型
描述
userId
NSString
呼叫的用户Id
15. 拒绝通话
定义
参数
参数名
类型
描述
userId
NSString
呼叫的用户Id
16. 转呼手机
定义
说明
呼叫用户的时候才能用;如果呼叫模式为视频会自动转为音频模式。
17. 转呼座机
定义
说明
呼叫用户的时候才能用,如果呼叫模式为视频会自动转为音频模式。
18. 切换音频模式
定义
说明
操作是否成功。成功之后,把本地视频视图清除掉。
19. 发送消息
定义
参数
参数名
类型
描述
content
NSString
发送消息的内容(限制1024字节)
20. 设置本地音频是否传输
定义
参数
参数名
类型
描述
enable
BOOL
YES为传输音频,NO为不传输音频,默认音频传输
21. 设置本地视频是否传输
定义
参数
参数名
类型
描述
enable
BOOL
YES为传输视频,NO为不传输视频,默认视频传输
22. 获取本地音频传输是否打开
定义
23. 获取本地视频传输是否打开
定义
24. 切换前后摄像头
定义
25. 设置扬声器开关
定义
参数
参数名
类型
描述
on
BOOL
YES打开扬声器,NO关闭扬声器,默认扬声器打开
26. 获取人员列表
定义
27. 抓图
定义
参数
参数名
类型
描述
userId
NSString
userId 用户Id
28. 设置会议模式
定义
参数
参数名
类型
描述
type
ARCallZoomType
模式类型
29. 设置显示页码
定义
参数
参数名
类型
描述
page
int
页码(从0开始,每页加上自己的视频流为4路)
30. 清空会话
定义
说明
当别人挂断或者自己挂断离开的时候,调用该方法用于清空本地视频。
ARCallKitDelegate 接口类
1. 服务器链接成功
定义
2. 服务器断开
定义
参数
参数名
类型
描述
code
ARCallCode
状态码
3. 收到呼叫的回调
定义
参数
参数名
类型
描述
userId
NSString
呼叫方的Id
userData
NSString
呼叫方的自定义信息
callMode
ARCallMode
呼叫类型
extend
NSString
扩展信息,用户自定义,呼叫群组的时候带的
4. 加入房间成功
定义
参数
参数名
类型
描述
roomId
NSString
房间号
说明
只有打开VIP或呼叫类型是AR_Call_Meet_Invite的时候才有回调,roomId参数仅供录像时使用。
5. 收到对方同意的回调
定义
参数
参数名
类型
描述
userId
NSString
呼叫方的Id
6. 收到对方拒绝的回调
定义
参数
参数名
类型
描述
userId
NSString
被呼叫方的Id
code
ARCallCode
状态码
7. 收到对方挂断的回调
定义
参数
参数名
类型
描述
userId
NSString
用户id
code
ARCallCode
状态码
8. 收到对方视频视频即将显示的回调
定义
参数
参数名
类型
描述
userId
NSString
呼叫的用户Id
renderId
NSString
渲染Id
userData
NSString
用户信息
说明
收到该回调,调用setRemoteVideoRender显示对方视频窗口。
9. 收到对方视频离开的回调
定义
参数
参数名
类型
描述
userId
NSString
呼叫的用户Id
renderId
NSString
渲染Id
10. 收到对方音频即将播放的回调
定义
参数
参数名
类型
描述
userId
NSString
用户Id
userData
NSString
用户信息
11. 收到对方音频离开的回调
定义
参数
参数名
类型
描述
userId
NSString
用户Id
12. 是否支持SIP呼叫
定义
参数
参数名
类型
描述
pstn
BOOL
YES:可转接手机,用户调用switchToPstn即可去呼叫手机
extensionextension
BOOL
YES:转接分机,用户调用switchToExtension即可去呼叫分机
null
BOOL
暂时可不用
13. 切换到音频模式
定义
说明
收到该回调,做视频视图的清理工作。
14. 收到消息回调
定义
参数
参数名
类型
描述
userId
NSString
发送消息的用户Id
content
NSString
消息内容
15. 其他与会者对音视频的操作
定义
参数
参数名
类型
描述
userId
NSString
用户Id
audio
BOOL
YES为打开音频,NO为关闭音频
video
BOOL
YES为打开视频,NO为关闭视频
16. 别人对自己音视频的操作
定义
参数
参数名
类型
描述
audio
BOOL
YES为打开音频,NO为关闭音频
video
BOOL
YES为打开视频,NO为关闭视频
17. 本地视频第一帧
定义
参数
参数名
类型
描述
size
CGSize
视频窗口大小
18. 远程视频第一帧
定义
参数
参数名
类型
描述
size
CGSize
视频窗口大小
renderId
NSString
渲染Id (用于标识与会者发布的流)
19. 本地窗口大小的回调
定义
参数
参数名
类型
描述
size
CGSize
视频窗口大小
20. 远程窗口大小的回调
定义
参数
参数名
类型
描述
size
CGSize
视频窗口大小
renderId
NSString
渲染Id (用于标识与会者发布的流)
21. 会议模式页码变化
定义
参数
参数名
类型
描述
type
ARCallZoomType
当前模式
allPage
int
总页码(一页显示4个)
currentPage
int
当前页
allRenderNum
int
当前服务上有多少个渲染,根据此数量来判断页码添加删除
index
int
开始位置
showNum
int
显示多少个
22. 呼叫队列用户的排队信息
定义
参数
参数名
类型
描述
queueNum
int
前面排队人员
23. 服务队列的相关队列信息
定义
参数
参数名
类型
描述
queueNum
int
队列数
allClerk
int
总客服数
woringNum
int
正在忙的客服
三、更新日志
Version 3.0.2 (2020-02-27)
修复Bug,SDK优化
Version 3.0.0 (2019-05-15)
SDK版本升级3.0,API接口变更
Version 2.0.0 (2017-09-30)
SDK版本升级2.0,梳理、完善SDK
Last updated
Was this helpful?