更新时间:2024-07-30 GMT+08:00

场景6: 创建会议

描述

创建会议功能会是指创建一个即时会议并立即加入会议,可以通过传参指定创建音频会议还是视频会议,可以指定会议是否需要密码。

业务流程

  1. 准备创建会议参数

    准备创建会议参数,类型为CreateConfParam,定义详见CreateConfParam的接口定义,共需要以下几个参数:会议主题、会议类型、是否需要密码、成员列表(携带与会者时传入)、是否打开摄像头(默认关闭)、是否打开麦克风(默认关闭)、云会议室id(使用时传入)、设置允许入会范围(必填:0-所有人,2-企业内,3-会议邀请人员)。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    //创建会议对象
    CreateConfParam createConfParam = new CreateConfParam()                             
          .setSubject(getSubject())     //会议名称                       
          .setConfType(ConfType.CONF_AUDIO)        //会议类型,详情请见表2 CreateConfParam参数说明 
          .setVmrId(getVmrId())         // 云会议室id(非必传字段)
          .setJoinConfRestrictionType(JoinConfPermissionType.PERMIT_EVERYONE)   // 设置允许入会范围限制
          .setCameraOn(true)           //摄像头是否开启
          .setMicOn(true)              //麦克风是否开启
          .setRecordOn(true)    //会议录制功能是否开启
          .setNeedPassword(true);    //会议是否需要密码
    

  2. 是否携带与会者(可选)

    如果需要携带与会者创建会议,给步骤1生成的创建会议参数中members赋值一个携带与会者的数组,如果不需要携带与会者可以不传入。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    List<AttendeeModel> attendeeList = new ArrayList<>();
                //以下三种方式可选
                String name = getName();
    	    String number = getNumber();
    	    String thirdAccount = getThirdAccount();
                if (!TextUtils.isEmpty(thirdAccount)) {
                    if (LoginStatusCache.getsLoginAccountInfo() instanceof AppIdAuthParam) {
                        //如果是appid的方式登录
                        attendeeList.add(AttendeeModel.buildAttendeeByThirdAccountId(thirdAccount,name));
                    }
                } else if(number.startsWith("+99")){
                    //sip 号码入会
                    attendeeList.add(AttendeeModel.buildAttendeeBySipNumber(number, name));
                } else {
                    //电话号码入会(手机和座机)
                    attendeeList.add(AttendeeModel.buildAttendeeByPhone(number, name));
                }
    //创建会议对象
    CreateConfParam createConfParam = new CreateConfParam()                             
          .setSubject(getSubject())     //会议名称                   
          .setConfType(ConfType.CONF_AUDIO)        //会议类型,详情请见表2 CreateConfParam参数说明
          .setVmrId(getVmrId())         // 云会议室id(非必传字段)
          .setJoinConfRestrictionType(JoinConfPermissionType.PERMIT_EVERYONE)   // 设置允许入会范围限制
          .setCameraOn(true)           //摄像头是否开启
          .setMicOn(true)              //麦克风是否开启
          .setRecordOn(true)    //会议录制功能是否开启
          .setNeedPassword(true)    //会议是否需要密码
          .setAttendeeMembers(attendeeInfos);    //添加与会人信息
    

  3. 调用接口

    使用步骤1和步骤2生成的创建会议参数,并根据返回的回调对执行的结果进行判断和处理,返回回调中onSuccess表示成功,onFailed表示失败,onCancel表示没有网络等取消创建,ErrorMessageFactory.create可以将场景错误码转成国际化的提示。

示例代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
//开始创建会议
HWMSdk.getOpenApi(getActivity()).createConf(createConfParam, new HwmCancelableCallBack <ConfInfo>() {              
     @Override              
     public void onSuccess(ConfInfo confInfo) {                    
           //创建成功  confInfo 会议详情
           //会议id:confInfo.getConfId();
           //会议密码:confInfo.getConfPwd();
     }               
     @Override              
     public void onFailed(int retCode, String desc) {           
           //创建失败
           String err = ErrorMessageFactory.create(Utils.getApp(), retCode);
           if (TextUtils.isEmpty(err)) {                       
                 err = Utils.getApp().getString(com.huawei.hwmmobileconfui.R.string.conf_create_error);                   
           }                  
           Log.i(TAG,  "创建会议失败: " + err);
     }         
     @Override
     public void onCancel() {
          Log.i(TAG,  "取消创建会议");.
     }
});

注意事项

创建会议的前提是已完成初始化和登录。