iOS
一、快速开始
集成指南
适用范围
本集成文档适用于iOS RTCPEngine SDK 2.0.0 ~ 3.0.2版本。
准备环境
Xcode 9.0+。
iOS 8.0+ 真机(iPhone 或 iPad)。
请确保你的项目已设置有效的开发者签名。
导入SDK
CocoaPods导入
通过 Cocoapods 下载地址:
如果需要安装指定版本则使用以下方式(以 3.0.2 版本为例):
手动导入
打开General->Embedded Binaries中添加RTCPEngine.framework
权限说明
使用RTCPEngine SDK 前,需要对设备进行授权。打开 info.plist ,点击 + 图标开始添加:
添加设备使用「网络」的权限
添加设备使用「相机」的权限
添加设备使用「麦克风」的权限
后台模式(Background Modes)
勾选Audio, AirPlay and Picture in Picture
开发指南
1. 初始化SDK
集成SDK后,还需对SDK进行初始化操作,建议在AppDelegate中完成。
1.1 导入头文件
1.2 配置开发者信息
示例代码:
2. 实例化实时直播对象
调用initWithDelegate:userId:userData:方法实例化实时直播对象,需实现ARRtcpKitDelegate中的回调方法。
示例代码:
3. 发布流
3.1 配置信息
调用ARRtcpOption类中的方法可对视频质量、帧率、码率、方向等进行配置。
示例代码:
3.2 发布媒体
示例代码:
3.3 设置本地视频采集窗口
调用setLocalVideoCapturer方法设置本地视频采集窗口,第一个参数为本地视频显示窗口,第二个参数为配置信息。
示例代码:
3.4 取消发布媒体
调用unPublish方法取消发布媒体,再次发布需调用setLocalVideoCapturer方法。
示例代码:
4. 订阅流
4.1 订阅视频
示例代码:
4.2 设置显示其他人的视频窗口
订阅后视频即将显示的回调中可调用setRemoteVideoRender:pubId:方法用于显示订阅的视频窗口。
示例代码:
4.3 取消订阅
取消已订阅的流可调用unSubscribe方法。
示例代码:
5. 离开房间
直播结束或离开房间需调用close方法。
示例代码:
二、API接口文档
ARRtcpEngine 接口类
1. 配置开发者信息
定义
参数
参数名
类型
描述
appId
NSString
appId
token
NSString
token
说明
2. 配置私有云
定义
参数
参数名
类型
描述
address
NSString
私有云服务地址
port
int
私有云服务端口
说明
配置私有云信息,当使用私有云时才需要进行配置,默认无需配置。
3. 获取SDK版本号
定义
返回值
RTCP SDK版本号
4. 设置打印日志级别
定义
参数
参数名
类型
描述
levelModel
ARLogModel
日志级别
ARRtcpKit 接口类
1. 实例化RTCPKit对象
定义
参数
参数名
类型
描述
delegate
id
RTCP相关回调代理
userId
NSString
用户自己平台的Id,确保唯一,不能为空
userData
NSString
用户自定义信息
返回
实时直播对象。
2. 监听房间
定义
参数
参数名
类型
描述
roomId
NSString
房间号
说明
监听房间号,用户发布取消发布的回调可以监听到,可以监听多个房间。
3. 取消监听房间
定义
参数
参数名
类型
描述
roomId
NSString
房间号
说明
取消监听房间号,用户发布取消发布的回调不在回调。
4. 设置本地视频采集窗口
定义
参数
参数名
类型
描述
render
UIView
视频显示对象
option
ARRtcpOption
配置信息
5. 设置本地显示模式
定义
参数
参数名
类型
描述
videoRenderMode
ARVideoRenderMode
显示模式,默认ARVideoRenderScaleAspectFill,等比例填充视图模式
6. 设置本地音频是否传输
定义
参数
参数名
类型
描述
enable
BOOL
YES传输音频,NO不传输音频,默认传输
7. 设置本地视频是否传输
定义
参数
参数名
类型
描述
enable
BOOL
YES传输视频,NO为不传输视频,默认视频传输
8. 获取本地音频传输是否打开
定义
返回值
音频传输与否
9. 获取本地视频传输是否打开
定义
返回值
视频传输与否
10. 设置扬声器开关
定义
参数
参数名
类型
描述
on
BOOL
YES打开扬声器,NO关闭扬声器,默认打开扬声器
11. 切换前后摄像头
定义
12. 设置本地前置摄像头镜像是否打开
定义
参数
参数名
类型
描述
enable
BOOL
YES打开,NO关闭
返回
本地前置摄像头镜像是否成功打开
13. 前置摄像头是否镜像
定义
返回值
是否镜像,默认打开。
14. 禁止接收某人视频
定义
参数
参数名
类型
描述
mute
BOOL
YES禁止,NO接收
pubId
NSString
RTCP服务生成的通道Id (用于标识通道,每次发布随机生成)
返回值
操作是否成功
15. 禁止接收某人音频
定义
参数
参数名
类型
描述
mute
BOOL
YES禁止,NO接收
pubId
BOOL
RTCP服务生成的通道Id (用于标识通道,每次发布随机生成)
返回值
操作是否成功
16. 发布媒体
定义
参数
参数名
类型
描述
token
NSString
令牌:客户端向自己服务申请获得,参考企业级安全指南
roomId
NSString
房间号
type
ARMediaType
0为发布音视频,1为只发布音频
live
BOOL
服务端不转直播;YES:服务端转直播;(使用该功能需联系客服开通)
17. 取消发布媒体
定义
说明
取消发布媒体之后,下次再发布的时候,还需要在调用setLocalVideoCapturer
18. 订阅视频
定义
参数
参数名
类型
描述
token
NSString
令牌:客户端向自己服务申请获得,参考企业级安全指南
pubId
NSString
RTCP服务生成的通道Id (用于标识通道,每次发布随机生成)
19. 取消订阅媒体流
定义
参数
参数名
类型
描述
pubId
NSString
RTCP服务生成的通道Id (用于标识通道,每次发布随机生成)
20. 设置显示其他人的视频窗口
定义
参数
参数名
类型
描述
render
UIView
对方视频的窗口,本地设置
pubId
NSString
RTCP服务生成的通道Id (用于标识通道,每次发布随机生成)
说明
该方法用于订阅成功通后,视频即将显示的回调中(onRTCRemoteOpenVideoRender)使用。
21. 设置其他人显示模式
定义
参数
参数名
类型
描述
videoRenderMode
ARVideoRenderMode
显示模式,默认ARVideoRenderScaleAspectFill,等比例填充视图模式
22. 关闭离开
定义
23. 设置音频检测
定义
参数
参数名
类型
描述
on
BOOL
是否开启音频检测,默认打开
24. 获取音频检测是否打开
定义
25. 设置视频网络状态是否打开
定义
参数
参数名
类型
描述
enable
BOOL
YES打开,NO关闭,默认关闭
26. 获取当前视频网络状态是否打开
定义
ARRtcpKitDelegate 接口类
1. 发布媒体成功回调
定义
参数
参数名
类型
描述
pubId
NSString
RTCP服务生成的通道Id (用于标识通道,每次发布随机生成)
liveInfo
NSString
直播信息
2. 发布媒体失败回调
定义
参数
参数名
类型
描述
code
int
状态码
reason
NSString
错误原因,RTC错误或者token错误(错误值自己平台定义)
3. 订阅通道成功的回调
定义
参数
参数名
类型
描述
pubId
NSString
RTCP服务生成的通道Id (用于标识通道,每次发布随机生成)
4. 订阅通道失败的回调
定义
参数
参数名
类型
描述
pubId
NSString
RTCP服务生成的通道Id (用于标识通道,每次发布随机生成)
code
int
状态码
reason
NSString
错误原因,RTC错误或者token错误(错误值自己平台定义)
5. 订阅后音视频即将显示的回调
定义
参数
参数名
类型
描述
pubId
NSString
RTCP服务生成的通道Id (用于标识通道,每次发布随机生成)
6. 订阅的音视频离开的回调
定义
参数
参数名
类型
描述
pubId
NSString
RTCP服务生成的通道Id (用于标识通道,每次发布随机生成)
7. 订阅音频后成功的回调
定义
参数
参数名
类型
描述
pubId
NSString
RTCP服务生成的通道Id (用于标识通道,每次发布随机生成)
8. 订阅的音频离开的回调
定义
参数
参数名
类型
描述
pubId
NSString
RTCP服务生成的通道Id (用于标识通道,每次发布随机生成)
9. 本地视频第一帧
定义
参数
参数名
类型
描述
size
CGSize
视频窗口大小
10. 远程视频第一帧
定义
参数
参数名
类型
描述
size
CGSize
视频窗口大小
pubId
NSString
RTCP服务生成的通道Id (用于标识通道,每次发布随机生成)
11. 本地窗口大小的回调
定义
参数
参数名
类型
描述
size
CGSize
视频窗口大小
12. 远程窗口大小的回调
定义
参数
参数名
类型
描述
size
CGSize
视频窗口大小
pubId
NSString
RTCP服务生成的通道Id (用于标识通道,每次发布随机生成)
13. 其他发布者的音频检测回调
定义
参数
参数名
类型
描述
pubId
NSString
RTCP服务生成的通道Id (用于标识通道,每次发布随机生成)
level
int
音频大小(0~100)
time
int
音频检测在nTime毫秒内不会再回调该方法(单位:毫秒)
说明
与会者关闭音频后(setLocalAudioEnable为NO),该回调将不再回调。对方关闭音频检测后(setAudioActiveCheck为NO),该回调也将不再回调。
14. 本地音频检测回调
定义
参数
参数名
类型
描述
level
int
音频大小(0~100)
time
int
音频检测在nTime毫秒内不会再回调该方法(单位:毫秒)
说明
本地关闭音频后(setLocalAudioEnable为NO),该回调将不再回调。本地关闭音频检测后(setAudioActiveCheck为NO),该回调也将不再回调。
15. 其他发布者的网络质量回调
定义
参数
参数名
类型
描述
pubId
NSString
RTCP服务生成的通道Id (用于标识通道,每次发布随机生成)
netSpeed
int
网络上行
packetLost
int
丢包率
netQuality
ARNetQuality
网络质量
16. 本地网络质量回调
定义
参数
参数名
类型
描述
netSpeed
int
网络上行
packetLost
int
丢包率
netQuality
ARNetQuality
网络质量
三、更新日志
Version 3.0.2 (2020-02-12)
添加发布、取消发布的监听
Version 3.0.1 (2019-05-24)
修复观看端不操作锁屏问题
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?