会议管理

加入会议

joinConference TangInterface.joinConference(req: MeetingReq, callback: TangCallback<String>) 参数

参数 描述
req 进入SDK需要传递的参数,见下面的详细说明
callback 入会相关回调

核心参数

参数 描述
pcode 入会码/入会链接

用户信息

参数 描述
name 入会的用户名称。name和email可以二选一
email 入会的用户邮箱。name和email可以二选一
userID 用户ID,默认空,如果传入则为全时用户的用户名
iconUrl 头像链接,默认空,显示首字母头像,如果传入则为全时用户的头像

功能配置

参数 描述
isShowInvite true: (默认值)启用邀请参会人功能 false: 隐藏邀请参会人功能
isShowChat true: (默认值)启用聊天功能 false: 隐藏聊天功能
isJumpJoin false: (默认值)启用入会预览功能 true: 隐藏入会预览功能
isShowAudio true: (默认值)在入会预览时开启音频功能 false: 在入会预览时关闭共享音频功能
isShowVideo true: 在入会预览时开启视频功能 false: 在入会预览时关闭共享视频功能(和管理中心存在优先级问题)
extraInfoList 自定义扩展会议信息,详情参考下文
preferredVoiceType 设置默认入会语音连接方式
isShowLock true: (默认值)是否显示会中锁定会场,解除锁定功能

PreferredVoiceType参数说明

参数 描述
PreferredVoiceType.NONE(0) 默认值,VOIP(如果管理中心配置支持)
PreferredVoiceType.NO_VOICE(7) 不选语音方式入会
PreferredVoiceType.PSTN(6) 电话语音方式入会
PreferredVoiceType.VOIP(1) 以VoIP方式入会
参数 描述
callback 入会结果回调 0为成功 其他为失败

离开会议

exitConference

TangInterface.exitConference()

调用时机:用户在会中页面操作后,SDK中会自动调用该接口,用户正常流程无需使用。

结束会议

endConference

TangInterface.endConference()

调用时机:用户在会中页面操作后,SDK中会自动调用该接口,用户正常流程无需使用。

会议状态

MeetingStatusListener

SDK提供了会议状态的监听接口。注意,状态监听的添加与移除需要配对调用。

// 添加状态监听TangInterface.addMeetingStatusListener(callback: TangCallback<MeetingStatus>)// 移除状态监听TangInterface.removeMeetingStatusListener(callback: TangCallback<MeetingStatus>)enum class MeetingStatus {    // 退会    LEAVE,    // 会议结束    END,    // 主持人结会    HOST_END_MEETING,}

错误码

错误码 说明
-1 会议密码获取失败
-200 入会userid传入与url链接解析获取的userid不一致
-1300 网络异常
15007 取消入会
17000 语音类型设置错误
17001 正在入会中,请不要重复入会
40001 没有麦克风权限
40010 会议入会调起串错误
40011 获取会议信息失败
40012 入会姓名格式不正确
40030 入会失败
其他 请使用ErrorCode.getCodeMessage()获取相关错误码信息

问题反馈

云会议已内置问题反馈功能,集成相应模块即可。

除此之外,用户也可直接调用反馈接口来反馈问题,参考代码如下:

 FeedbackSDK.submitFeedback(                    context = requireContext(),                    // 非正式问题反馈请前缀添加“TS忽略”                    description = "TS忽略 来源:Android SDK DEMO 描述:$desc",                    userConfig = UserConfig().apply {                        mobile = phone                    },                    callback = object : UploadCallback() {                        override fun onZipStart(totalNum: Int) {                            updateStatus("开始压缩日志")                        }                        override fun onZipProgress(totalNum: Int, index: Int) {                            updateStatus("正在压缩日志 第 $index/$totalNum 个")                        }                        override fun onUploadProgress(percent: Int) {                            updateStatus("正在上传反馈 百分比:$percent")                        }                        override fun onUploadSuccess() {                            updateStatus("上传反馈成功")                        }                        override fun onUploadFail(code: Int, message: String?) {                            updateStatus("上传反馈失败 $message")                        }                    }                )

初始化SDK

初始化SDK,添加全局监听

当未登录、或登录未连接状态,投屏功能不可用

UserManager.init(applicationContext, object : LoginStateListener {     override fun onLogin() {          LogUtil.i(TAG, "onLogin ----> 登录成功回调")     }     override fun onLogout() {          LogUtil.i(TAG, "onLogout ----> 退出登录成功回调")     }     override fun onConnectedStatus(state: Int) {          LogUtil.i(TAG, "onConnectedStatus(连接状态) ----> state = $state")     }})

参数说明:

参数 说明
state 0-未连接;1-正在连接(重连);2-已连接;3-session过期

会议信息扩展配置

接口说明参考上一节进入和退出会议,在入会接口中可以填充extraInfoList字段

参数名 说明 必须
type 字段类型:
TYPE DESC - 文本信息(默认)
LINK - 入会链接,使用该字段会替换原入会链接
PCODE - 入会码,使用该字段会替换原入会码 HOST - 主持人,使用该字段会替换原主持人姓名和复制会议信息中标题的主持人名称 LIVE_LINK - 直播链接,使用该字段会替换原直播链接
propertyName 字段名称(例:会议ID)
propertyValue 字段名称(例:会议ID)
visible 在会中会议详情页是否可见

修改视频展示比例

接口:TangSdkApp.setVideoDisplayMode()

参数名 说明 必须
displayMode 0为占满屏幕,1为原始比例