更新时间:2024-09-13 GMT+08:00

创建会议

1
HWMSdk.getOpenApi.createConf(CreateConfParam, HwmCancelableCallBack

接口描述

该接口用于创建即时会议并立即加入会议。

注意事项

该接口会申请应用程序的audio和camera权限。

方法定义

1
2
3
4
5
6
 /**
     * 创建会议接口
     * @param createConfParam 会议配置实体
     * @param hwmCallback 会议创建回调
     */
   void createConf(CreateConfParam createConfParam , HwmCancelableCallBack <ConfInfo> hwmCallback);

参数描述

表1 参数说明

参数

是否必须

类型

描述

createConfParam

CreateConfParam

创建会议参数实体

hwmCallback

HwmCancelableCallBack

会议创建结果回调

返回值

无。

参数拓展

表2 CreateConfParam参数设置说明

参数

是否必须

类型

描述

subject

String

会议主题

confType

ConfType

CONF_AUDIO(0, "语音会议"),

CONF_VIDEO(1, "视频会议"),

needPassword

boolean

会议是否需要密码

说明:

仅对随机ID会议生效。

guestPwd

String

来宾密码,如果不填则来宾密码由服务端生成

说明:

仅对随机ID会议生效。

attendeeMembers

List<AttendeeModel>

会议参加者集合

isCameraOn

boolean

是否开启摄像头

isMicOn

boolean

是否开启麦克风

isRecordOn

boolean

会议录制功能是否开启

说明:

仅对云录制生效,客户端本地录制不生效。

isAutoRecord

boolean

会议开始后是否自动开启录制,默认false。开启自动录制会议时必须开启录制会议

说明:

仅对云录制生效,客户端本地录制不生效。

vmrId

String

云会议室id

joinConfRestrictionType

JoinConfPermissionType

PERMIT_EVERYONE("PERMIT_EVERYONE", 0, "允许所有人入会")

PERMIT_ENTERPRISE_USER("PERMIT_ENTERPRISE_USER", 2, "仅允许企业内人员入会")

PERMIT_INVITED_USER("PERMIT_INVITED_USER", 3, "仅允许会议邀请人员入会")

customInfo

String

端侧自定义数据,服务器不感知业务

isSpeakerOff

boolean

是否关闭扬声器,默认不关闭

concurrentParticipants

int

会议方数,会议最大与会人数限制。

注:不填则不限制

confResType

ConfResType

会议资源类型,共享VMR需要传ConfResType.CONF_RESTYPE_SHARE_VMR,非共享VMR可不传此参数

autoMuteMode

AutoMuteType

个人客户端入会是否自动静音

hardTerminalAutoMuteMode

AutoMuteType

会议室设备入会是否自动静音

示例代码

 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
    List<AttendeeModel> attendeeList = new ArrayList<>();
            //以下三种方式可选
	    String name = getName();
       	    String number = getNumber();
	    String thirdAccountId = getThirdAccountId();
            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)                        //会议类型
     .setVmrId(getVmrId())         // 云会议室id(非必传字段)
     .setJoinConfRestrictionType(JoinConfPermissionType.PERMIT_EVERYONE)   // 设置允许入会范围限制
     .setNeedPassword(true)                  //是否创建密码
     .setCameraOn(true)           //摄像头是否开启
     .setMicOn(true)              //麦克风是否开启
     .setRecordOn(true)    //会议录制功能是否开启
     .setAttendeeMembers(attendeeList);    //添加与会人信息

HWMSdk.getOpenApi(getActivity()).createConf(createConfParam, new HwmCancelableCallBack<ConfInfo>() {  

     //创建会议成功回调            
     @Override              
     public void onSuccess(ConfInfo confInfo) {                    
         Log.i(TAG, "创建会议成功: 会议id:" + confInfo.getConfId() +                                     
              ";会议密码:" + confInfo.getConfPwd());              
     }
         
     //创建会议失败回调
     @Override              
     public void onFailed(int retCode, String desc) {                             
         dismissLoading();                   
         String err = ErrorMessageFactory.create(Utils.getApp(), retCode);                   
         if (TextUtils.isEmpty(err)) {                       
            err = Utils.getApp().getString(com.huawei.hwmmobileconfui.R.string.conf_create_error);                   
         }                  
         Log.e(TAG, "创建会议失败: " + err);              
     }         
    @Override
    public void onCancel() {
        
    }
});