本页介绍iOS SDK集成至应用内所需的功能接口函数,当你计划接入SDK提供的语音、视频、IM等相关服务时,都必须先初始化,初始化完成以后才能接入其他函数的功能。
如果计划使用语音和视频功能服务,则需要集成TCP SDK和Video SDK。
如果计划使用IM功能服务,则需要集成TCP SDK和IM SDK。
如果计划使用语音、视频、IM等相关服务,则需要集成TCP SDK、Video SDK和IM SDK。
SDK初始化流程
原型:+ (instancetype)sharedTcpClientManager;
功能:实例化UCSTcpClient的一个单例对象,启动连接云平台能力,所有功能实现都要基于与云平台的连接。
返回:UCSTcpClient实例对象
备注:必须在调用其他能力接口前调用,这个方法是生成UCSTcpClient的唯一方法,请不要使用init()等其他初始化方法,否知会出现未知的错误
参数:无
原型:- (void)setTcpDelegate:(id
功能:设置TCP SDK代理。
返回:无
备注:如果需要通过回调监控tcp连接状态之类的,就必须设置这个代理。一般在初始化实例后,连接云平台前调用。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
delegate | UCSTCPDelegateBase | 必选 | tcp事件回调代理 |
原型:- (void)login_connect_old:(NSString *)accountSid withAccountToken:(NSString *)accountToken withClientNumber:(NSString *)clientNumber withClientPwd:(NSString *)clientPwd success:(void (^)(NSString *userId))success failure:(void (^)(UCSError *error))failure;
功能:连接到云之讯平台
返回:无
备注:一般在初始化实例后,连接云平台时调用(注意:这个登陆方式是为了兼容旧的SDK,后面可能会废弃)。 使用这个接口的唯一场景是: 用户已经在现有的app中集成了我们旧的SDK,并且不希望更改成新的登陆方式(云之讯建议你更改成新的登陆方式)。其他场景下,请使用新的登陆方式。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
accountSid | NSString | 必选 | 开发者账号Id |
accountToken | NSString | 必选 | 开发者账户token(官网注册开发者账号时,由云平台自动分配) |
clientNumber | NSString | 必选 | Client账号 |
clientPwd | NSString | 必选 | Client账号密码 |
success | block | 必选 | 登陆成功回调Block,返回值userid |
failure | block | 必选 | 登陆失败回调block,返回值UCSError的实例对象 |
原型:- (void)login_connect:(NSString *)token success:(void (^)(NSString *userId))success failure:(void (^)(UCSError *error))failure;
功能:连接到云之讯平台。
返回:无
备注:一般在初始化实例后,连接云平台时调用。(注意: 除非是为了兼容旧的SDK,否则请使用这个登陆方式)。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
token | NSString | 必选 | 加密的token |
success | block | 必选 | 登陆成功回调Block,返回值userid |
failure | block | 必选 | 登陆失败回调block,返回值UCSError的实例对象 |
原型:- (BOOL)login_isConnected;
功能:判断当前帐号与云平台的连接状态
返回:YES:已连接 ;NO:未连接
备注:开发者在使用能力接口前,可以通过该接口,判断是否已经正常连接云平台
参数:无
原型:- (void)login_uninitWithFlag:(BOOL)flag;
功能:断开客户端和云平台的连接,并且根据flag标识的bool值选择是否关闭离线推送(推送功能暂时只有IM使用)。
返回:无
备注:在客户端不需要继续与云平台保持连接的时候,调用这个方法断开连接。断开连接后,客户端将不会再收到与云平台的消息推送,也无法发送消息到云平台。断开连接,不会影响APNS离线推送功能
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
flag | BOOL | 必选 | 是否关闭推送的bool值。YES,关闭。NO,不关闭。(暂时只有IM使用推送功能) |
原型:- (UCSNetworkStatus)getCurrentNetWorkStatus;
功能:查询当前网络状态
返回:当前网络状态UCSNetworkStatus枚举
备注:无
参数:无
目的是提供TCP的网络链接状态的监听。
原型:- (void)didConnectionStatusChanged:(UCSConnectionStatus)connectionStatus error:(UCSError *) error;
功能:监听连接状态
返回:无
备注:连接状态变化时,会通过此方法回调开发者。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
connectionStatus | UCSConnectionStatus | 必选 | 连接状态的枚举值,具体参考UCSTcpDefine.h文件 |
error | UCSError | 必选 | 错误码实例对象 |
原型:- (UCSService *) initWithDelegate:(id
功能:初始化SDK,启动能力服务,以便用户使用语音、视频等相关能力接口。
返回:UCSService实例对象
备注:必须在调用其他能力接口前调用,在tcp sdk初始化之后,tcp sdk登陆之前调用。只需要初始化一次,初始化完成后保存返回的对象。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
delegate | UCSEventDelegate | 必选 | 为事件回调代理 (提供互联网音视频能力回调等实例对象), 详细参见UCSEvent.h |
原型:-(void)setDelegate:(id< UCSEventDelegate>)delegate;
功能:设置事件代理方法
返回:无
备注:一般在初始化实例后,调用其他能力接口前调用,在tcp sdk初始化之后,tcp sdk登陆之前调用。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
delegate | UCSEventDelegate | 必选 | 为事件回调代理 (提供互联网音视频能力回调等实例对象), 详细参见UCSEvent.h |
原型:- (NSString*) getUCSSDKVersion;
功能:获取SDK版本号
返回:SDK版本信息字符串
备注:用于知道当前SDK版本信息,便于功能细节追溯
参数:无
原型:- (void)setIpv6:(BOOL)isIpv6;
功能:设置当前网络是否是IPV6
返回:无
备注:默认IPV4,建议在初始化完成后设置,也可在拨打电话之前设置。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
isIpv6 | BOOL | 必选 | NO:不是IPv6 YES:是IPv6 |
原型:- (void)onInitEngineSuccessful:(NSInteger)result;
功能:引擎初始化成功回调
返回:无
备注:建议登陆接口在引擎初始化成功后调用。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
result | NSInteger | 必选 | 0表示成功 |
原型:- (void)dial:(NSInteger)callType andCalled:(NSString *)calledNumber andUserdata:(NSString *)callerData;
功能:发起免费通话和视频通话
返回:无
备注:
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
callType | NSInteger | 必选 | 拨打电话方式:0 语音免费通话;2 视频通话; |
calledNumber | NSString | 必选 | 被叫userid账号 |
callerData | NSString | 必选 | 开发者透传数据字段,方便开发者透传自定义应用信息,该字段信息会通过云平台回调函数透传返回给开发者服务器 |
原型:- (void) hangUp: (NSString*)callid;
功能:挂断通话
返回:无
备注:主叫方:外呼过程中或通话中,调用这个接口结束一路呼叫;被叫方:来电过程中或通话中,调用这个接口结束一路通话;
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
callid | NSString | 无 | 释放的会话id (目前版本可以为空),该参数可由<接收来电>、<呼叫振铃>事件回调中得到 |
原型:- (void) answer: (NSString*)callid;
功能:接听来电电话
返回:无
备注:用于被叫来电时,用户触发接听电话场景,被叫收到onIncomingCall事件后,可调用answer接口接听或调用reject接口拒绝接听。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
callid | NSString | 无 | 来电通话id (目前版本可以为空) |
原型:- (void) reject: (NSString*)callid;
功能:拒接来电电话
返回:无
备注:用于被叫来电时,用户触发拒接电话场景,被叫收到onIncomingCall事件后,可调用answer接口接听或调用reject接口拒绝接听。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
callid | NSString | 无 | 来电通话id (目前版本可以为空) |
原型:- (BOOL)sendDTMF: (char )dtmf;
功能:发送DTMF信息
返回:YES:成功 ;NO:失败
备注:用于通话过程中发送DTMF场景,取值为0-9、*、#。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
dtmf | NSString | 必选 | DTMF值 |
原型:- (void) setSpeakerphone:(BOOL)enable;
功能:设置扬声器状态,开启或关闭
返回:无
备注:用于通话过程中开启或关闭免提场景。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
enable | BOOL | 必选 | 打开:YES,关闭:NO |
原型:- (BOOL) isSpeakerphoneOn;
功能:获取当前扬声器是否开启状态
返回:YSE:扬声器开启; NO:扬声器关闭
备注:用于通话过程中判断扬声器是否开启场景。
参数:无
原型:- (void)setMicMute:(BOOL)on;
功能:设置静音状态,开启或关闭
返回:无
备注:用于通话过程中开启或关闭静音场景(开启后,自己能听到对方的声音,对方听不到自己的声音)。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
on | BOOL | 必选 | 打开:YES,关闭:NO |
原型:- (BOOL)isMicMute;
功能:获取当前静音是否开启状态
返回:YES:静音开启; NO:静音关闭
备注:用于通话过程中判断静音是否开启场景。
参数:无
原型:- (void) callIncomingPushRsp:(NSString*)callid withVps:(NSInteger)vpsid withReason:(UCSReason*)reason;
功能:iOS离线来电续活
返回:无
备注: 当云平台接收要来电时,被叫方如不在线,则云平台会给开发者应用服务器回调<离线来电Push续活通知>,开发者应用服务器可以通过APNS苹果推送机制,将来电信息推送到应用客户端,并在应用客户端激活SDK时,使用该接口通知云平台SDK已激活,正在等待云平台下发来电呼叫。应用可以根据当前网络环境或业务逻辑判断是否接听来电,结果可以通过reason字段发给云平台,云平台根据reason判断是否继续下发来电或释放会话。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
callid | NSString | 无 | 当前来电会话id (目前版本可以为空) |
vpsid | NSInteger | 必选 | 云平台会话控制服务器标识id |
reason | UCSReason | 必选 | 原因UCSReason { NSInteger reason;/*错误码*/ NSString *msg;/*描述*/ } 详细请参见IOS 返回码 |
原型:- (void)onDialFailed:(NSString*)callid withReason:( UCSReason*) reason;
功能:音视频通话呼叫失败事件代理
返回:无
备注:用于音视频通话,主叫侧接收到云平台下发的呼叫失败应答场景。外呼时,如呼叫失败,就返回该事件。外呼失败的原因有很多,可以根据reason来判断。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
callid | NSString | 无 | 当前通话id (目前版本可以为空) |
reason | UCSReason | 必选 | 呼叫失败的原因详细请参见IOS 返回码 |
原型:- (void) onHangUp:(NSString*)callid withReason:( UCSReason*) reason;
功能:释放通话事件回调代理
返回:无
备注:用于音视频通话,通话过程中主动释放通话场景。通话过程中,呼叫释放,就返回该事件。外呼过程中,呼叫释放,只调用onDialFailed事件代理。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
callid | NSString | 无 | 当前通话id (目前版本可以为空) |
reason | UCSReason | 必选 | 呼叫失败的原因详细请参见IOS 返回码 |
原型:- (void) onAlerting:(NSString*)callid;
功能:音视频通话被叫应答回铃事件代理
返回:无
备注:用于音视频通话,主叫侧接收到云平台下发的呼叫回铃应答场景。外呼时,被叫如有回应,就返回该事件。当收到该事件时,对方会响起振铃音,本地会响起回铃音。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
callid | NSString | 无 | 当前通话id (目前版本可以为空) |
原型:- (void) onAnswer:(NSString*)callid;
功能:音视频通话被叫应答接听事件代理
返回:无
备注:用于音视频通话,主叫侧接收到云平台下发的呼叫接听应答场景。外呼时,被叫如有回应接听,就返回该事件。当收到该事件时,表明对方已经应答接听,进入通话状态,应用需要提醒用户已经进入通话状态。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
callid | NSString | 无 | 当前通话id (目前版本可以为空) |
原型:- (void)onIncomingCall:(NSString*)callid withcalltype:(UCSCallTypeEnum) callType withcallerinfo:(NSDictionary *)callinfo;
功能:互联网音视频来电事件代理
返回:无
备注:用于互联网音视频通话,被叫侧接收到云平台下发呼叫的场景。应用接收到该事件后,需要提醒用户来电或者根据自己业务逻辑拒绝来电。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
callid | NSString | 无 | 当前通话id (目前版本可以为空) |
callType | NSString | 必选 | 通话类型: 0 语音免费电话;2 视频电话; |
callinfo | NSDictionary | 必选 | 来电会话信息(主被叫号码、会话id等) 待补充。。。 |
原型:- (void)onDTMF:(NSString *)value;
功能:DTMF事件回调代理
返回:无
备注: 通话过程中,接收对方DTMF,应用根据DTMF信息进行业务逻辑处理,一般适用于门禁系统,智能解锁场景。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
value | NSString | 必选 | DTMF值rfc 2833协议标准 |
原型:- (void)onNetWorkState:(UCSNetworkState)networkState;
功能:OTT网络状态回调代理
返回:无
备注:通话过程中,应用根据OTT网络状态回调进行界面显示。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
networkState | UCSNetworkState | 必选 | UCSNetworkState:枚举 网络状态为优秀、一般、良好、很差 |
原型:-(UIView *)allocCameraViewWithFrame:(CGRect)frame;
功能:实例化视频的显示窗口
返回:UIView 视图窗口
备注:用于实例化视频图像显示窗口。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
frame | CGRect | 必选 | 设置显示本地视频视图控件的大小 |
原型:-(BOOL)initCameraConfig:(UIView*)localVideoView withRemoteVideoView:(UIView*)remoteView;
功能:设置视频的显示参数
返回:YES成功;NO失败
备注:用于设置视频图像显示大小。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
localVideoView | UIView | 必选 | 设置显示本地视频视图控件 |
remoteView | UIView | 必选 | 设置显示对方视频视图控件 |
原型:- (int) getCameraNum;
功能:获取到当前手机的摄像头个数
返回:摄像头个数
备注:无
参数:无
原型:- (BOOL) switchCameraDevice:(int)CameraIndex;
功能:后置摄像头和前置摄像头的切换
返回:YES成功;NO失败
备注:前置摄像头与后置摄像头的切换
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
CameraIndex | int | 必选 | 后置摄像头:0 前置摄像头:1 |
原型:- (BOOL) switchVideoMode:(UCSCameraType)type;
功能:切换视频模式
返回:YES成功;NO失败
备注:三种视频模式:本地模式、远程模式、正常模式。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
type | UCSCameraType | 必选 | UCSCameraType: 枚举 远程模式、本地模式、正常模式 |
原型:-(void)setVideoAttr:(UCSVideoEncAttr*)ucsVideoEncAttr andVideoDecAttr:(UCSVideoDecAttr*)ucsVideoDecAttr;
功能:设置视频编码和解码参数
返回:无
备注:通过UCSVideoEncAttr设置视频编码 分辨率、开始码率、帧率参数, 通过UCSVideoDecAttr设置视频解码 分辨率参数(在设置视频显示参数前调用)
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
ucsVideoEncAttr | UCSVideoEncAttr | 必选 | 参考ucsVideoEncAttr参数实体 |
ucsVideoDecAttr | UCSVideoDecAttr | 必选 | 参考ucsVideoDecAttr参数实体 |
原型:- (BOOL)setCameraPreViewStatu:(BOOL)isPreView;
功能:来电时是否支持预览
返回:YES 成功 NO失败
备注:视频来电时,未接听,是否支持对方预览摄像头显示图像,在登录前设置
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
isPreView | BOOL | 必选 | 支持预览:YES 不支持预览:NO |
原型:- (BOOL)isCameraPreviewStatu;
功能:获取来电时是否支持预览接口
返回:YES 成功 NO失败
备注:无
参数:无
原型:- (BOOL) setRotationVideo:( unsigned int ) sendRotation withReciviedRotation:( unsigned int )reciviedRotation;
功能:设置视频显示的角度
返回:YES成功;NO失败
备注:旋转对端视频图像的显示角度 参数值为4个方向 0 90 180 270
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
sendRotation | unsigned int | 必选 | 本端视频图像的角度 |
reciviedRotation | unsigned int | 必选 | 对端视频图像的角度 |
原型:- (void)cameraCapture:(int)islocal withFileName:(NSString*)filename withSavePath:(NSString*)savePath;
功能:截取摄像头显示的视频图像
返回:无
备注:截取本地的摄像头显示图像或者对方的显示图像,然后保存到本地路径地址。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
islocal | int | 必选 | 远端截图:0 本地截图:1 |
filename | NSString | 必选 | 截取的图片名称 |
savePath | NSString | 必选 | 存放的本地路径 |
原型:- (void)onCameraCapture:(NSString*)cameraCapFilePath;
功能:视频截图回调
返回:无
备注:视频截图回调函数
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
cameraCapFilePath | NSString | 必选 | 存放的本地路径 |
原型:- (void)onRemoteCameraMode:(UCSCameraType)type;
功能:对方模式切换的回调
返回:无
备注:当对端视频模式切换的时候,通过该回调,可以知道对方所处的视频模式状态。 本地视频模式:对方处于视频流发送状态,本端视频可以看到对方的视频,对方看不到本端的视频。远程视频模式:对方处于视频流接收状态,本端视频不可以看到对方的视频,对方能看本端的视频。正常视频模式:对方处于视频流发送以及接收状态,双方视频正常状态。(注:当本地视频模式为本地视频模式,或者对方视频模式为远程视频模式,此时的网络状态是不准确的。)
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
type | UCSCameraType | 必选 | 对端视频模式枚举值,具体参考UCSCameraeType定义。 |
关于摄像头的操作接口,如前后摄像头切换、摄像头旋转角度等操作,需要在通话建立后,才可以操作。通话结束后的复位操作需要开发者自己完成。
静音、扬声器、闪光灯等设备操作接口,需要在主叫收到onAlerting回调时或者被叫收到onIncomming回调时进行操作。通话结束后的复位操作需要开发者自己完成。
视频来电预览接口,在进行通话业务前进行配置。配置一次即可,不需要每通电话都配置。