更新时间:2019-11-20
描述
普通与会者和主席均可在会议中主动退出会议,主席可以结束会议。
若主席退出会议,则会议中无主席。预约会议时,原主席可以通过主席接入信息重新加入会议获取主席。当会议中无任何与会者时,会议也会自动结束。
前提条件
与会者已在会议中。
业务流程
在主动退出会议过程中,SDK层会主动挂断通话,然后才离开会议。
//Java code public int leaveConf() { if (null == currentConference) { Log.i(TAG, "leave conf, currentConference is null "); return 0; } int result = currentConference.leaveConference(); if (result == 0) { currentConference = null; } return result; } |
//Java code public void onEvtCallDestroy(TsdkCall call){ Log.i(TAG, "onCallDestroy"); if (null == call) { Log.e(TAG, "call obj is null"); return; } Session callSession = getCallSessionByCallID(call.getCallInfo().getCallId()); if (callSession == null) { Log.e(TAG, "call session obj is null"); return; } removeCallSessionFromMap(callSession); } |
应用程序界面在关闭会议时应为主席提供“退出会议”和“结束会议”的选择入口。
//Java code public int endConf() { if (null == currentConference) { Log.i(TAG, "end conf, currentConference is null "); return 0; } int result = currentConference.endConference(); if (result == 0) { currentConference = null; } return result; } |
//Java code public void handleConfEndInd(TsdkConference conference) { Log.i(TAG, "handleConfEndInd" + conference.getHandle()); currentConference = null; } |
注意事项
无。
描述
在会议中进行基础的会议控制操作。
前提条件
无。
业务流程
闭音会场:只闭音与会者。
会控类型 |
接口 |
权限 |
说明 |
---|---|---|---|
闭音会场 |
主席 |
设置会议闭音后,除主席外,其他所有与会者均不可说(只可听)。 |
|
添加与会者 |
主席 |
支持邀请一个或多个与会者。 |
|
重播与会者 |
主席 |
重新呼叫之前挂断的与会者。 |
|
挂断与会者 |
主席 |
挂断在会议中的与会者。 |
|
删除与会者 |
主席 |
踢出与会者(正在会议中的)、移除已离会的与会者和取消正在邀请的与会者。 |
|
闭音与会者 |
|
设置闭音后,该与会者不可说(只听)。 会议主席在会议中设置或取消其他与会者闭音,普通与会者设置或取消自己闭音。 |
|
举手 |
|
会议主席在会议中取消其他与会者举手,所有与会者设置或取消自己举手。 |
|
设置会议视频模式 |
主席 |
支持的视频会议模式有“广播与会者模式”、“声控模式”和“自由讨论模式”。 |
|
观看与会者 |
|
AVC 会议:只需要指定待选看的与会者号码,每次指定选看一个与会者。 SVC会议:
|
|
广播与会者 |
主席 |
会议视频模式为“广播与会者模式”时主席可以指定广播与会者。 |
|
申请主席 |
普通与会者 |
通过主席密码申请主席权限成为主席。 |
|
释放主席 |
主席 |
释放主席权限后成为普通与会者。 |
|
设置会议录播 |
主席 |
设置开始和结束录播。 |
|
设置会议直播 |
主席 |
设置开始和结束直播。 |
//Java code public int muteConf(boolean isMute) { if (null == currentConference) { Log.e(TAG, "mute conf failed, currentConference is null "); return -1; } int result = currentConference.muteConference(isMute); return result; } |
//Java code public void handleConfctrlOperationResult(TsdkConference conference, TsdkConfOperationResult result) { Log.i(TAG, "handleConfctrlOperationResult"); int ret = result.getReasonCode(); if (null == conference || null == result) { return; } if (ret != 0) { Log.e(TAG, "conf ctrl operation failed: " + result.getDescription()); return; } int confOperationType = result.getOperationType(); switch (confOperationType) { case 2: mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.MUTE_CONF_RESULT, ret); break; case 3: mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.UN_MUTE_CONF_RESULT, ret); break; case 4: mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.LOCK_CONF_RESULT, ret); break; case 5: mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.UN_LOCK_CONF_RESULT, ret); break; case 6: mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.ADD_ATTENDEE_RESULT, ret); break; case 7: mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.DEL_ATTENDEE_RESULT, ret); break; case 10: mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.MUTE_ATTENDEE_RESULT, ret); break; case 11: mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.UN_MUTE_ATTENDEE_RESULT, ret); break; case 12: mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.HAND_UP_RESULT, ret); break; case 13: mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.CANCEL_HAND_UP_RESULT, ret); break case 18: mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.REQUEST_CHAIRMAN_RESULT, ret); break; case 19: mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.RELEASE_CHAIRMAN_RESULT, ret); break; default: break; } } |
注意事项
无。
描述
会议过程中,会议状态或与会者成员状态发生变化时,服务器会推送变更通知,应用程序界面应刷新相应的状态以提示用户。
前提条件
主席和与会者均已在会议中。
业务流程
事件返回的消息内容为TsdkConference对象,其中:
离会,删除与会者,退出会议等情景中,如遇不知如何判断是否还在会议中时,Android平台下都可以通过刷新事件判断自己是否在列表中来判断自己的状态。
//Java code public void handleInfoAndStatusUpdate(TsdkConference conference){ Log.i(TAG, "onConfStatusUpdateInd"); if ((currentConference == null) || (conference == null)) { return; } if (currentConference.getHandle() != conference.getHandle()) { return; } String handle = conference.getHandle()+""; this.updateConfInfo(conference); mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.STATE_UPDATE, handle); } |
注意事项
无。
描述
会议过程中,应用程序显示服务器推送的当前发言人信息。
前提条件
与会者均已在会议中。
业务流程
当存在多个发言人时,建议应用程序界面按音量大小,显示第一发言人和第二发言人。
注意事项
无。