参会者通过呼入同一个会议室进行音视频通话,对于有密码的会议室需同时输入会议室密码进入会议。可以通过事件回调获取当前呼叫状态,根据呼叫状态进行相应的处理。 呼叫成功后,参会者进入会议,云平台将自动发送音视频流。音视频通话过程中参会人员信息状态变更以事件回调方式进行通知,收到回调消息后可根据业务场景进行后续处理。
您可以通过 makeCall 方法进行呼叫,方法中 number 是即将呼叫的会议室号码,config是入会参数。呼叫状态会通过代理方法 xyLinkSDKOnCallStateChangeWithInfo:state:reason 回调给开发者。当 state 是 XYLinkSDKCallState_VarifyPassword 时,表示该会议室需要密码,调用方法 validatePassword:传入密码。 如果收到了 xyLinkSDKOnCallFailed:withReason:回调,可以结合 reason 查看具体的失败原因,如没有收到失败回调则进入呼叫中状态。当 xyLinkSDKOnCallStateChangeWithInfo:state:reason 返回 XYLinkSDKCallState_Connected 状态,代表入会成功,之后需要关注以下信息:
- (void)makeCall {
XYCallConfig *config = [[XYCallConfig alloc] init];
config.videoMute = NO; // 开启视频入会
config.audioMute = NO; // 开启音频入会
[[XYLinkSDK sharedXYLinkSDK] makeCall:@"number"
callMode:XYLinkSDKCallMode_AudioVideo
callConfig:config];
}
- (void)xyLinkSDKOnCallFailed:(NSString *)number withReason:(NSString *)reason {
//收到此回调说明入会失败
}
- (void)xyLinkSDKOnCallStateChangeWithInfo:(NSDictionary *)remoteInfo
state:(XYLinkCallState)callState
reason:(NSString *)reason {
if (callState == XYLinkSDKCallState_Connecting) {
// 呼叫中,等待入会
} else if (callState == XYLinkSDKCallState_Connected) {
// 呼叫成功,已入会
} else if (callState == XYLinkSDKCallState_DisConnected) {
// 呼叫失败,会议已断开,请查看具体原因
} else if (callState == XYLinkSDKCallState_VarifyPassword) {
// 校验密码
[[XYLinkSDK sharedXYLinkSDK] validatePassword:@"密码"];
}
}