iOS
一、快速开始
集成指南
适用范围
本集成文档适用于iOS RTMaxEngine SDK 3.0.0 ~ 3.0.3版本。
准备环境
Xcode 9.0+。
iOS 8.0+ 真机(iPhone 或 iPad)。
请确保你的项目已设置有效的开发者签名。
导入SDK
CocoaPods导入
通过 Cocoapods 下载地址:
如果需要安装指定版本则使用以下方式(以 3.0.1.8 版本为例):
手动导入
在Xcode中选择“Add files to 'Your project name'...”,将RTMaxEngine.framework添加到你的工程目录中
打开General->Embedded Binaries中添加RTMaxEngine.framework
权限说明
使用RTMaxEngine SDK 前,需要对设备进行授权。打开 info.plist ,点击 + 图标开始添加:
添加设备使用「网络」的权限
添加设备使用「相机」的权限
添加设备使用「麦克风」的权限
后台模式(Background Modes)
勾选Audio, AirPlay and Picture in Picture
开发指南
1. 初始化SDK
集成SDK后,还需对SDK进行初始化操作,建议在AppDelegate中完成。
1.1 导入头文件
1.2 配置开发者信息
示例代码:
2. 加入房间
2.1 实例化对讲调度对象
调用initWithDelegate:方法实例化对讲调度对象,需实现ARMaxKitDelegate中的回调方法。
示例代码:
2.2 加入对讲组
示例代码:
2.3 抢麦
调用applyTalk:方法抢麦,参数priority为抢麦用户级别,数值越大,级别越小。当返回值为0时,代表抢麦成功。
示例代码:
2.4 设置本地视频采集窗口
调用setLocalVideoCapturer:option:方法设置本地视频采集窗口,第二个参数option为配置信息,包括视频帧率、码率、方向等信息。
示例代码:
2.5 呼叫相关
发起呼叫(makeCall:type:userData:)
视频监看(monitorVideo:userData:)
视频上报(reportVideo:)
2.6 离开对讲组
调用leaveTalkGroup方法释放对讲调度资源。
示例代码:
二、API接口文档
ARMaxEngine 接口类
1. 配置开发者信息
定义
参数
参数名
类型
描述
appId
NSString
appId
token
NSString
token
说明
2. 配置私有云
定义
参数
参数名
类型
描述
address
NSString
私有云服务地址
port
int
私有云服务端口
说明
配置私有云信息,当使用私有云时才需要进行配置,默认无需配置。
3. 获取SDK版本号
定义
返回值
RTMaxEngine SDK版本号
4. 设置打印日志级别
定义
参数
参数名
类型
描述
levelModel
ARLogModel
日志级别
ARMaxKit 接口类
1. 实例化ARMaxKit对象
定义
参数
参数名
类型
描述
delegate
id
对讲调度相关回调代理
返回
对讲调度对象。
2. 加入对讲组
定义
参数
参数名
类型
描述
token
NSString
客户端向自己服务申请获得,参考企业级安全指南
groupId
NSString
对讲组id(同一个anyrtc平台的appid内保持唯一性)
userId
NSString
用户的第三方平台的用户Id
userData
NSString
用户的自定义数据
返回值
-1为groupId为空,0为成功,2为userData 大于512字节。
3. 切换对讲组
定义
参数
参数名
类型
描述
groupId
NSString
对讲组id(同一个anyrtc平台的appid内保持唯一性)
userData
NSString
用户的自定义数据
返回值
-2为切换对讲组失败,-1为groupId为空,0为成功,2为userData 大于512字节。
4. 离开对讲组
定义
说明
该方法为释放对讲调度资源
5. 切换对讲组
定义
参数
参数名
类型
描述
priority
int
申请抢麦用户的级别(0权限最大(数值越大,权限越小);除0意外,可以后台设置0-10之间的抢麦权限大小)
返回值
0为成功,-1为未登录,-2为正在对讲中,-3为资源还在释放中,-4为 操作太过频繁。
6. 取消抢麦/下麦
定义
7. 设置只有对讲模式
定义
参数
参数名
类型
描述
enable
BOOL
YES:只有对讲;NO:包含所有功能
8. 设置本地视频采集窗口
定义
参数
参数名
类型
描述
render
UIView
视频显示对象
option
ARMaxOption
视频配置
9. 切换前后摄像头
定义
10. 设置音量检测
定义
参数
参数名
类型
描述
on
BOOL
YES为打开音量检测;NO为关闭音量检测
说明
默认打开
11. 获取音频检测是否打开
定义
12. 设置本地音频是否传输
定义
参数
参数名
类型
描述
enable
BOOL
YES为传输音频,NO为不传输音频
说明
默认传输
13. 设置本地视频是否传输
定义
参数
参数名
类型
描述
enable
BOOL
YES为传输视频,NO为不传输视频,默认传输
14. 设置录像
定义
参数
参数名
类型
描述
filePath
NSString
呼叫通话录音的保存路径(文件夹路径)
talkPath
NSString
对讲录音的保存路径(文件夹路径)
talkP2PPath
NSString
强插P2P录像的保存路径(文件夹路径)
返回值
0为设置失败,1为设置成功。
15. 设置远端用户是否可以接收自己的音视频
定义
参数
参数名
类型
描述
userId
NSString
远端用户userId
enable
BOOL
YES:接收音频,NO:不接收音频
enable
BOOL
YES:接收视频,NO:不接收视频
16. 设置不接收指定通道的音视频
定义
参数
参数名
类型
描述
peerId
NSString
视频通道的peerId
enable
BOOL
YES:接收音频,NO:不接收音频
enable
BOOL
YES:接收视频,NO:不接收视频
17. 启用/关闭扬声器播放
定义
参数
参数名
类型
描述
enableSpeaker
BOOL
YES切换到外放,NO切换到听筒。如果设备连接了耳机,则语音路由走耳机
18. 查询扬声器启用状态
定义
19. 重置音频录音和播放
定义
说明
使用AVplayer播放后调用该方法。
20. 打开或者关闭网络状态回调
定义
参数
参数名
类型
描述
enable
BOOL
YES打开网络状态回调,NO关闭网络状态回调,默认关闭
21. 获取网络状态是否打开
定义
返回值
YES网络状态打开,NO网络状态关闭。
22. 关闭P2P通话
定义
说明
在控制台强插对讲后,关闭和控制台之间的P2P通话。
23. 发起呼叫
定义
参数
参数名
类型
描述
userId
NSString
被呼叫用户Id
type
int
呼叫类型:0视频,1音频
userData
NSString
用户的自定义数据
返回值
0为调用OK,-1未登录,-2没有通话,-3视频资源占用中,-5:本操作不支持自己对自己,-6:会话未创建(没有被呼叫用户)。
24. 邀请用户
定义
参数
参数名
类型
描述
userId
NSString
被邀请用户的Id
userData
NSString
用户的自定义数据
返回值
0为调用OK,-1未登录,-2没有通话,-3视频资源占用中,-5:本操作不支持自己对自己,-6:会话未创建(没有被呼叫用户)。
25. 主叫端结束某一路正在进行的通话
定义
参数
参数名
类型
描述
userId
NSString
结束的这路视频的用户ID
26. 同意呼叫
定义
参数
参数名
类型
描述
callId
NSString
呼叫请求时收到的Id
说明
0调用OK,-1未登录,-2会话不存在,-3视频资源占用中。
27. 拒绝通话
定义
参数
参数名
类型
描述
callId
NSString
呼叫的Id
28. 被叫端离开通话
定义
说明
调用该方法后,把本地视频窗口从父视图上删除。
29. 设置显示其他端视频窗口
定义
参数
参数名
类型
描述
render
UIView
显示对方视频的窗口
pubId
NSString
RTC服务生成流的ID (用于标识与会者发布的流)
说明
该方法用于与会者接通后,与会者视频接通回调中(onRTCRemoteOpenVideoRender)使用。
30. 发起视频监看(或者收到视频上报请求时查看视频)
定义
参数
参数名
类型
描述
userId
NSString
被监看用户Id
userData
NSString
用户的自定义数据
返回值
0调用OK,-1未登录,-5本操作不支持自己对自己。
31. 同意别人视频监看
定义
参数
参数名
类型
描述
userId
NSString
被监看用户Id
说明
该方法为被监看方调用,在接收到回掉(onRTCVideoMonitorRequest)后调用
返回值
0调用OK,-1未登录,-3:视频资源占用中,-5本操作不支持自己对自己。
32. 拒绝监看
定义
参数
参数名
类型
描述
userId
NSString
发起人的用户Id
33. 监看发起者关闭视频监看(谁监看谁关闭)
定义
参数
参数名
类型
描述
userId
NSString
被监看的用户Id
说明
关闭成功会有回掉(onRTCRemoteCloseVideoRender),把显示的视图从父视图上删除掉
34. 视频上报(接收端收到上报请求时,调用monitorVideo进行视频查看)
定义
参数
参数名
类型
描述
userId
NSString
上报对象的用户的Id
返回值
0调用OK,-1未登录,-3:视频资源占用中,-5本操作不支持自己对自己。
35. 上报者关闭上报
定义
说明
上报功能只能自己关闭。
36. 发送消息
定义
参数
参数名
类型
描述
userName
NSString
用户昵称(最大256字节),不能为空,否则发送失败
userHeaderUrl
NSString
用户头像(最大512字节),可选
content
NSString
消息内容(最大1024字节)不能为空,否则发送失败
返回值
YES/NO 发送成功/发送失败
说明
如果加入RTC(joinTalkGroupByToken)没有设置userId,发送失败
ARMaxKitDelegate 回调类
1. 加入群组成功回调
定义
参数
参数名
类型
描述
groupId
NSString
组ID
2. 加入群组失败回调
定义
参数
参数名
类型
描述
groupId
NSString
组ID
code
ARMaxCode
错误码
reason
NSString
错误原因,rtc错误,或者token错误(错误值自己平台定义)
3. 临时离开群组回调
定义
参数
参数名
类型
描述
code
ARMaxCode
错误码;0是正常退出;100:网络错误;207:强制退出。其他值参考错误码
4. 离开群组回调
定义
参数
参数名
类型
描述
code
ARMaxCode
错误码;0是正常退出;100:网络错误;207:强制退出。其他值参考错误码
5. 申请语音上麦成功回调
定义
6. 申请语音上麦失败回调
定义
参数
参数名
类型
描述
code
ARMaxCode
错误码;0是正常退出;100:网络错误;207:强制退出。其他值参考错误码
userId
NSString
用户Id
userData
NSString
用户自定义数据
7. 其他人上麦成功回调
定义
参数
参数名
类型
描述
userId
NSString
用户Id
userData
NSString
用户自定义数据
8. 其他人下麦回调
定义
参数
参数名
类型
描述
code
ARMaxCode
错误码 0:正常结束对讲;其他参考错误码
userId
NSString
用户Id
userData
NSString
用户自定义数据
9. SDK向应用层获取当前的网络状态
定义
说明
如果是2G、3G网络,是弱网;如果是4G和WIFI,为非弱网。SDK为弱网传输做了深度优化
返回值
YES弱网,NO非弱网。
10. 加入对讲组成功/切换对讲组成功回调
定义
参数
参数名
类型
描述
groupId
NSString
组ID
11. 加入对讲组失败/切换对讲组失败回调
定义
参数
参数名
类型
描述
groupId
NSString
组ID
code
ARMaxCode
错误码
reason
NSString
错误原因,rtc错误,或者token错误(错误值自己平台定义)
12. 临时断开群组回调
定义
参数
参数名
类型
描述
code
ARMaxCode
错误码
13. 离开对讲组回调
定义
参数
参数名
类型
描述
code
ARMaxCode
错误码;0是正常退出;100:网络错误;207:强制退出。其他值参考错误码
14. 当用户处于对讲状态时,控制台强制发起P2P通话的回调
定义
参数
参数名
类型
描述
userId
NSString
用户Id
userData
NSString
用户自定义数据
15. 与控制台的P2P讲话结束回调
定义
参数
参数名
类型
描述
userData
NSString
用户自定义数据
16. 收到监看请求回调
定义
参数
参数名
类型
描述
userId
NSString
用户Id
userData
NSString
用户自定义数据
17. 视频监看结束回调
定义
参数
参数名
类型
描述
userId
NSString
用户Id
userData
NSString
用户自定义数据
18. 视频监看请求结果回调
定义
参数
参数名
类型
描述
userId
NSString
用户Id
code
ARMaxCode
错误码
userData
NSString
用户自定义数据
19. 收到视频上报请求回调
定义
参数
参数名
类型
描述
userId
NSString
用户Id
userData
NSString
用户自定义数据
20. 收到视频上报结束回调
定义
参数
参数名
类型
描述
userId
NSString
用户Id
21. 主叫方发起通话成功回调
定义
参数
参数名
类型
描述
callId
NSString
呼叫Id
22. 主叫方收到被叫方同意通话回调
定义
参数
参数名
类型
描述
userId
NSString
用户Id
userData
NSString
用户自定义数据
23. 主叫方收到被叫方通话拒绝的回调
定义
参数
参数名
类型
描述
userId
NSString
用户Id
code
ARMaxCode
错误码
userData
NSString
用户自定义数据
24. 被叫方调用leaveCall方法时,主叫方收到的回调
定义
参数
参数名
类型
描述
userId
NSString
用户Id
25. 主叫方收到通话结束(被叫方和邀请发已全部退出或者主叫方挂断所有参与者)回调
定义
参数
参数名
类型
描述
callId
NSString
呼叫Id
26. 被叫方收到通话请求回调
定义
参数
参数名
类型
描述
callId
NSString
呼叫Id
callType
int
呼叫类型:0:视频;1:音频
userId
NSString
用户Id
userData
NSString
用户自定义数据
27. 被叫方收到主叫方挂断通话(收到该回掉,把本地视图从父视图删除)回调
定义
参数
参数名
类型
描述
callId
NSString
呼叫Id
userId
NSString
用户Id
code
ARMaxCode
错误码
28. 其他与会者加入(音视频)回调
定义
参数
参数名
类型
描述
peerId
NSString
RTC服务生成的标识Id (用于标识与会者,每次加入会议随机生成);
pubId
NSString
RTC服务生成流的Id (用于标识与会者发布的流);
userId
NSString
用户Id
userData
NSString
用户自定义数据
29. 其他与会者离开(音视频)回调
定义
参数
参数名
类型
描述
peerId
NSString
RTC服务生成的标识Id (用于标识与会者,每次加入会议随机生成);
pubId
NSString
RTC服务生成流的Id (用于标识与会者发布的流);
userId
NSString
用户Id
30. 其他与会者加入(音频)回调
定义
参数
参数名
类型
描述
peerId
NSString
RTC服务生成的标识Id (用于标识与会者,每次加入会议随机生成);
userId
NSString
用户Id
userData
NSString
用户自定义数据
31. 其他与会者离开(音频)回调
定义
参数
参数名
类型
描述
peerId
NSString
RTC服务生成的标识Id (用于标识与会者,每次加入会议随机生成);
userId
NSString
用户Id
32. 本地视频第一帧
定义
参数
参数名
类型
描述
size
CGSize
视频窗口大小
33. 远程视频第一帧
定义
参数
参数名
类型
描述
size
CGSize
视频窗口大小
pubId
NSString
RTC服务生成流的Id (用于标识与会者发布的流)
34. 本地窗口大小的回调
定义
参数
参数名
类型
描述
size
CGSize
视频窗口大小
35. 远程窗口大小的回调
定义
参数
参数名
类型
描述
size
CGSize
视频窗口大小
pubId
NSString
RTC服务生成流的Id (用于标识与会者发布的流)
36. 其他与会者对音视频的操作回调
定义
参数
参数名
类型
描述
peerId
NSString
RTC服务生成的标识Id (用于标识与会者,每次加入会议随机生成)
audio
BOOL
YES为打开音频,NO为关闭音频
video
BOOL
YES为打开视频,NO为关闭视频
37. 别人对自己音视频的操作回调
定义
参数
参数名
类型
描述
audio
BOOL
YES为打开音频,NO为关闭音频
video
BOOL
YES为打开视频,NO为关闭视频
38. 其他与会者的声音大小回调
定义
参数
参数名
类型
描述
peerId
NSString
RTCP服务生成的通道Id (用于标识通道,每次发布随机生成)
userId
NSString
自己平台的用户Id
level
int
音频大小(0~100)
time
int
音频检测在nTime毫秒内不会再回调该方法(单位:毫秒)
说明
与会者关闭音频后(setLocalAudioEnable为NO),该回调将不再回调。对方关闭音频检测后(setAudioActiveCheck为NO),该回调也将不再回调。
39. 本地声音大小回调
定义
参数
参数名
类型
描述
level
int
音频大小(0~100)
time
int
音频检测在nTime毫秒内不会再回调该方法(单位:毫秒)
说明
本地关闭音频后(setLocalAudioEnable为NO),该回调将不再回调。本地关闭音频检测后(setAudioActiveCheck为NO),该回调也将不再回调。
40. 其他与会者网络质量回调
定义
参数
参数名
类型
描述
peerId
NSString
RTCP服务生成的通道Id (用于标识通道,每次发布随机生成)
userId
NSString
用户平台Id
netSpeed
int
网络上行
packetLost
int
丢包率
netQuality
ARNetQuality
网络质量
41. 本地网络质量回调
定义
参数
参数名
类型
描述
netSpeed
int
网络上行
packetLost
int
丢包率
netQuality
ARNetQuality
网络质量
42. 流量状态
定义
参数
参数名
类型
描述
allBytes
int
总的流量
sendBytes
int
发送的流量
recvBytes
int
接收的流量
details
NSString
详情
43. 录像地址回调信息回调
定义
参数
参数名
类型
描述
recordType
int
录音的类型(0/1/2/3:对讲本地录音/对讲远端录音/强插P2P录音/语音通话呼叫录音)
userData
NSString
用户自定义数据
filePath
NSString
录音文件的路径
44. 收到消息回调
定义
参数
参数名
类型
描述
userId
NSString
发送消息者在自己平台下的Id
userName
NSString
发送消息者的昵称
userHeaderUrl
NSString
发送者的头像
content
NSString
消息内容
45. 当前对讲组在线人数回调
定义
参数
参数名
类型
描述
num
int
当前在线人员数量
46. 第三方用户平台自定义消息通知
定义
参数
参数名
类型
描述
userData
NSString
自定义消息内容
三、更新日志
Version 3.0.1.7 (2019-10-15)
修复bug
Version 3.0.0 (2019-05-15)
SDK版本升级3.0,API接口变更,更加简洁规范
更改SDK配置项,配置更简单
断网重连优化
分辨率选项增加,帧率可配置
添加用户服务级token安全认证,服务更安全
Version 2.0.0 (2017-09-30)
SDK版本升级2.0,梳理、完善SDK
Last updated
Was this helpful?