会议管理
加入会议
joinConference TangInterface.joinConference(req: MeetingReq, callback: TangCallback<String>)
参数
参数 | 描述 |
---|---|
req | 进入SDK需要传递的参数,见下面的详细说明 |
callback | 入会相关回调 |
核心参数
参数 | 描述 |
---|---|
pcode | 入会码/入会链接 |
用户信息
参数 | 描述 |
---|---|
name | 入会的用户名称。name和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为原始比例 | 是 |