主要功能

会议管理

入会

/**
*@brief 进入会议
*@param pUserName 进入会议的用户的名字
*@param pMeetingCode 会议的参会密码(注意不含‘-’)
*@param videoEnable 是否默认视频
*@param audioEnable 是否默认打开音频
*@param showPreview 是否显示视频预览窗口
*@param extraData 用来在会议信息种显示的扩展数据
*/
void TangMeetingJoin(const char* pUserName, const char* pMeetingCode, bool videoEnable, bool audioEnable,
    bool showPreview, const char* extraData);

调用时机:初始化之后

使用UserID 入会

/**
*@brief 进入会议
*@param pUserId   进入会议的用户id
*@param pMeetingCode 会议的参会密码(注意不含‘-’)
*@param videoEnable 是否默认视频
*@param audioEnable 是否默认打开音频
*@param showPreview 是否显示视频预览窗口
*@param extraData 用来在会议信息种显示的扩展数据
*/
void TangMeetingJoinByUserId(const char * pUserId , const char* pMeetingCode, bool videoEnable, bool audioEnable,
    bool showPreview, const char* extraData);

调用时机:初始化以后 注意:使用此接口入会,会中的display name将自动识别为开通的账号的display name, 另外,如果使用约会人的userId, 会议密码即使用参会人密码,会中仍然是主持人

退会

/**
*@brief 退出会议
*@terminate true时,表示主持人离开会议时是否自动结束会议,对参会人此参数无效
*@return void
*/
void TangMeetingStop(bool terminate);

调用时机:用户希望通过app控制退会

反初始化

/**
*@brief 销毁TangMeetingSDK.该接口可将meetingSDK的实例杀掉,第三方APP退出之前应调用该接口,否则可能不能完全退出程序
*@return
*- == true 销毁成功
*- == false 销毁失败
*/
bool TangMeetingUninitialize();

调用时机:用户app结束时,卸载sdk

配置界面属性

/**
*@brief 此接口用来定制界面做一些个性化设置,应在入会之前调用,且只需调用一次,多次调用无效。如没有个性化要求,此接口可以不调用
*@customConfigData Json格式的字符串,具体可配置项如下
*
*return
*-== true 设置成功
*-== false 设置失败(比如没有调用Initialize就调用本函数)
*/
bool TangMeetingSetCustomConfig(const char * customConfigData);

customConfigData示例:

{"colorTheme":1,"language":1, "customUI":{"inviteBtn":{"isShow":true}}} // 深色主题,英文,参会人也有邀请按钮

customConfig对象定义:

key value类型 描述
appName string 设置会议窗口显示名称
language number 设置会议界面的显示语言,0:简体中文(默认);1:英文
colorTheme number 设置会议界面的主题色, 1:深色主题; 2: 浅色主题(默认)
customUI object 设置会议界面中元素的自定义项,见customUI对象参考
openVideoWhenJoinMeeting boolean 入会是否开启视频,true: 开启(默认); false: 不开启

customUI对象定义:

key value类型 描述
inviteBtn customBtnObject 邀请按钮
shareBtn customBtnObject 共享按钮
switchLayoutBtn customBtnObject 切换布局按钮
layoutType number 设置布局类型,1:平均(默认);2:全景;3:演讲;4:回型;5:上台; 6: 工字型; 7: 左右
audioBtn customBtnObject 音频设置按钮
videoBtn customBtnObject 视频设置按钮
attendeeBtn customBtnObject 参会人按钮
chatBtn customBtnObject 聊天按钮
lockBtn customBtnObject 锁定会议按钮
interactiveBtn customBtnObject 互动激励按钮
customerServiceBtn customBtnObject 客服按钮
aboutBtn customBtnObject 关于按钮
feedbackBtn customBtnObject 反馈按钮
isShowFootbar boolean 是否显示底部工具栏,true:显示(默认);false:隐藏
isShowMeetingInfo boolean 是否显示会议信息,true:显示(默认);false:隐藏
leaveBtn customBtnObject 离开按钮
isShowBulletOption boolean 是否显示弹幕选项,true:显示(默认);false:隐藏
isShowEmotionToolbar boolean 是否显示聊天表情,true:显示(默认);false:隐藏

customBtnObject对象参考:

key value类型 描述
isShow boolean 是否显示,true:显示(默认);false:隐藏

调用时机:在初始化之后

其他功能

获取会议信息

/**
*@brief    通过会议Id获取会议信息
*@param meetingId 会议ID
*@return
*/
void GetMeetingInfo(const char* meetingId);

调用时机:初始化以后,通过会议ID获取会议详情, 详情通过回调 pfnOnGetMeetingInfo 返回

登录

/**
*@brief    通过普通账号密码登录云会议
*@param pUserName 用户名
*@param pPassword 密码

*@return
*/
void LoginWithPassword(const char* pUserName, const char* pPassword);

调用时机:初始化以后,登录状态通过 pfnOnLoginResult 回调返回

回调事件说明

会议状态回调

/**
* 会议状态变化的回调
*/
typedef void(*pfnOnMeetingStatusChanged)(TangMeetingStatus eStatus);

约会或邀请人后回调

/**
* 预约会议或会中邀请按钮被触发的回调
*/
typedef void(*pfnOnInviteContact)(const char *pMeetingInfo);

创建会议后的回调

/**
* 创建会议后的回调, 返回会议的id
*/
typedef void(*pfnOnMeetingCreated)(TangMeetingErrorCode errorCode, const char *pMeetingId);

获取会议信息回调

/**
* 获取会议信息的回调, 返回会议信息的JSON字符串
{
    id - 会议的id,
    title - 会议的标题,
    startTime - 会议的开始时间,
    attendees - 会议的参会人ID列表数组,
    hostId - 会议的主持人ID,
    hostName - 会议的主持人名字,
    pCode - 会议的参会人密码,
    hCode - 会议的主持人密码,仅在登录账户是该场会议的主持人时候返回,
}
*/

typedef void(*pfnOnGetMeetingInfo)(TangMeetingErrorCode errorCode, const char *pMeetingInfo);

登录的回调


/**
* 登录的回调, 返回错误码
*/
typedef void(*pfnOnLoginResult)(TangMeetingErrorCode errorCode);

邀请外呼列表回调

/**
* 返回外呼邀请信息
返回的UserInfo是一个Json数组
 [ 
    { 
        userName: name, 
        phoneNum: phoneNumber, 
        email: xxx@email.com
    }, 
]
*/
typedef void(*pfnOnCallUsers)(const char *pUsersInfo);

对应错误码与状态码

enum TangMeetingStatus
{
    tang_meeting_login_failed = 100,        //登陆失败
    tang_meeting_scheduler_failed = 101,    //预约会议失败
    tang_meeting_join_failed = 102,            //入会失败
    tang_meeting_login_succeed = 200,        // 登陆成功 
    tang_meeting_scheduler_succeed = 201,    // 预约会议成功
    tang_meeting_join_succeed = 202,        // 入会成功 
    tang_meeting_exit = 300,                // 退出会议
};

enum TangMeetingErrorCode
{
    success = 0,                            // 成功
    login_failed = 100,                        // 登录失败
    client_not_login = 104,                    // 客户端没有登录
    client_not_running = 105,                // SDK的客户端没有运行
};