实时对讲

1、实时对讲开发说明               

实时对讲功能是语音会议的一种特殊形式,默认最大支持5方,专有云根据选定套餐进行扩展。发言人必须抢麦才能发言,只能有人放麦以后,其他人才能抢麦。                
注意:5.0以上的SDK集成的客户端,测试点对点音视频,音视频会议,群组等功能,建议先将在官网控制台创建的应用上线,才可测试(控制台提供的测试demo中的应用id和应用token,不能用来测试,需要使用自己在官网控制台创建的应用id和应用token)。                
1.1、接口逻辑                
接口调用是采取“请求回调”和“通知回调”的方式和服务端交互。用户发出创建对讲、抢麦等操作时,在对应的sdk的方法参数中有“请求回调”方法,请求的结果直接在参数的回调方法中处理。会议中的成员收到服务端发送过来的消息通过“通知回调”方法-(void)onReceiveInterphoneMeetingMsg:(ECInterphoneMeetingMsg  *)msg;来接收并进行处理。                
1.2、业务流程               
(1)用户A创建实时对讲,创建的同时选择用户B、用户C加入
(2)用户A先被加入到实时对讲会议室中
(3)用户B和用户C收到请求并同意加入,同时用户A收到用户B和用户C加入的通知消息
(4)通过退出接口可以退出实时对讲
(5)会议室内只要有一个人,实时对讲就不会结束,直到所有人退出实时对讲,会议室自动关闭
                    

2、实时对讲操作代码示例                                

创建实时对讲

我们假设Tony要和John、Smith建立实时对讲,则Tony创建实时会议的代码如下:                                        
  • //要邀请的成员数组
  • NSMutableArray * inviteArray = [[NSMutableArray alloc] initWithObjects:@" John的电话号",@" Smith的电话号", nil];
  • [[ECDevice sharedInstance].meetingManager createInterphoneMeetingWithMembers:inviteArray completion:^(ECError *error, NSString *meetingNumber) {  // error创建实时对讲回调状态码
  •                //meetingNo 创建实时对讲回调的会议号
  •                 if(error.errorCode==ECErrorType_NoError){
  •                  NSLog(@"创建实时对讲成功,跳转到实时对讲界面");
  •                 }else {
  •                   NSLog(@"创建实时对讲失败");
  •                 } }];                  

接收到实时对讲邀请

John和Smith收到实时对讲的邀请(在通知消息中同时上报了已经加入会议的成员),或者当有人加入实时对讲时,sdk都通过onReceiveInterphoneMeetingMsg上报相关信息,其代码如下:
                                     
  • -(void)onReceiveInterphoneMeetingMsg:(ECInterphoneMeetingMsg *)msg{
  •     ECInterphoneMeetingMsgType type=msg.type;
  •    if (type== Interphone_INVITE)
  •     {
  •        NSLog(@"邀请加入实时对讲");
  •     }
  •     else if(type== Interphone_OVER)
  •     {
  •        NSLog(@"退出实时对讲");
  •     }}                                                                   
通常实时对讲为了实时的邀请不允许拒绝,可以先进入实时对讲,然后再退出。                                              

退出实时对讲

在实时对讲中,Tony、John、Smith三人中的任何人都可以随时退出实时对讲,代码如下:                                        
  • [[ECDevice sharedInstance].meetingManager exitMeeting];                                                     

实时对讲抢麦

抢麦只有在实时对讲中才起作用,在语音会议和视频会议中无效。我们假设Tony在实时对讲中抢麦,其示例代码如下:
                       
  • NSString* meetingNo =@”所在的实时对讲的会议号”;
  •  [[ECDevice sharedInstance].meetingManager controlMicInInterphoneMeeting: meetingNo completion:^(ECError *error,NSString *memberVoip ){
  •          // memberVoip当前在麦上的账号
  •         if (error.errorCode == ECErrorType_NoError)
  •            { 
  •                NSLog(@"控麦成功,请讲话"); 
  •            }
  •         else
  •           {
  •                NSLog(@"控麦失败,稍后重试"); 

  •           }
  •  }];                                                                                                    

实时对讲放麦

放麦只有在实时对讲中才起作用,在语音会议和视频会议中无效。我们假设Tony在语音会议中放麦,其示例代码如下:
                         
  • NSString* meetingNo =@”所在的实时对讲的会议号”;
  • [[ECDevice sharedInstance].meetingManager releaseMicInInterphoneMeeting: meetingNo completion:^(ECError *error,NSString *memberVoip ){
  •             // memberVoip当前在放麦人的账号
  •             if (error.errorCode == ECErrorType_NoError)
  •            { 
  •                NSLog(@"放麦成功"); 
  •            }
  •         else
  •           {
  •                NSLog(@"放麦失败,稍后重试"); 
  •           }
  •         }]