智慧服务,成就美好体验 项目咨询

主页 > 服务与支持 > 开发平台 > 客户端SDK参考 > Android Native SDK > 会议 桌面协同与共享

入门使用

桌面协同与共享

更新时间:2019-11-20

屏幕和程序共享

描述

会议中,移动与会者主动共享屏幕,观看屏幕或程序共享。

前提条件

  • 加入数据会议成功。
  • 加载屏幕/程序共享模块成功。

业务流程

  • 主动开始和结束屏幕共享
    图1 主动开始和结束屏幕共享流程 
  1. 主讲人侧UI调用TsdkConference对象中的startScreenShare()方法开始共享屏幕。

     

    说明: 

    在调用开始屏幕共享startScreenShare()方法之前,UI侧需要先调用MediaProjectionManager.createScreenCaptureIntent()方法向系统申请截屏权限。

    在申请截屏权限成功的回调onActivityResult中再调用startScreenShare()方法开始共享屏幕。

    代码示例:

    //Java code
    public int startScreenShare(Context context, Intent data){
            if (null == currentConference)
            {
                Log.e(TAG,  "start screen share failed, currentConference is null ");
                return -1;
            }
            int result =  currentConference.startScreenShare(context,data);
            return result;
        }
    
     

     

  2. 主讲人侧和其他与会者侧SDK在收到服务器返回的开始共享状态通知后,通过TsdkNotify对象中onEvtAsStateChange()方法向UI上报应用共享状态通知事件,UI刷新屏幕共享状态信息。

     

    代码示例:

    //Java code
    public void onEvtAsStateChange(TsdkConference conference, TsdkConfAppShareType shareType,TsdkConfAsStateInfo asStateInfo)
        {
            Log.i(TAG, "handleAsStateChange");
    
            switch (TsdkConfShareState.enumOf(asStateInfo.getState()))
            {
                // 开始共享
                case TSDK_E_CONF_AS_STATE_VIEW:
                    isShareAs = true;
                    mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.START_DATA_CONF_SHARE, asStateInfo);
                    break;
    
                // 结束共享
                case TSDK_E_CONF_AS_STATE_NULL:
                    isShareAs = false;
                    if ((0 == documentId.size() || null == documentId))
                    {
                        mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.END_DATA_CONF_SHARE, asStateInfo);
                    }
                    break;
                default:
                    break;
            }
        }
    
     

     

  3. 主讲人侧和其他与会者侧SDK在收到服务器返回的令牌消息通知后,通过TsdkNotify对象中OnEvtAsOwnerChange()方法向UI上报共享者变更通知事件,UI刷新共享者信息。

     

    代码示例:

    //Java code
    public void OnEvtAsOwnerChange(TsdkConference conference,TsdkConfAsActionType actionType, TsdkAttendee owner){
            Log.i(TAG, "handleAsOwnerChange");
            if (owner==null||self==null){
                return;
            }
            switch (actionType){
                case TSDK_E_CONF_AS_ACTION_ADD:
                    if (owner.getBaseInfo().getNumber().equals(self.getNumber())){
                        mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.SCREEN_SHARE_STATE, actionType);
                    }else {
                        stopScreenShare();
                        mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.SCREEN_SHARE_STATE, TsdkConfAsActionType.TSDK_E_CONF_AS_ACTION_MODIFY);
                    }
                    break;
                case TSDK_E_CONF_AS_ACTION_DELETE:
                    mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.SCREEN_SHARE_STATE, actionType);
                    break;
    
            }
        }
    
     

     

  4. 主讲人侧UI调用TsdkConference对象中的stopScreenShare()方法结束共享屏幕。

     

    代码示例:

    //Java code
    public void stopScreenShare(){
            if (null == currentConference)
            {
                Log.e(TAG,  "stop screen share failed, currentConference is null ");
                return ;
            }
            currentConference.stopScreenShare();
        }
    
     

     

  5. 主讲人侧和其他与会者侧SDK在收到服务器返回的结束共享状态通知后,通过TsdkNotify对象中onEvtAsStateChange()方法向UI上报应用共享状态通知事件,UI刷新屏幕共享状态信息。

     

    代码示例:

    //Java code
    public void onEvtAsStateChange(TsdkConference conference, TsdkConfAppShareType shareType,TsdkConfAsStateInfo asStateInfo)
        {
            Log.i(TAG, "handleAsStateChange");
    
            switch (TsdkConfShareState.enumOf(asStateInfo.getState()))
            {
                // 开始共享
                case TSDK_E_CONF_AS_STATE_VIEW:
                    isShareAs = true;
                    mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.START_DATA_CONF_SHARE, asStateInfo);
                    break;
    
                // 结束共享
                case TSDK_E_CONF_AS_STATE_NULL:
                    isShareAs = false;
                    if ((0 == documentId.size() || null == documentId))
                    {
                        mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.END_DATA_CONF_SHARE, asStateInfo);
                    }
                    break;
                default:
                    break;
            }
        }
    
     

     

  6. 主讲人侧和其他与会者侧SDK在收到服务器返回的令牌消息通知后,通过TsdkNotify对象中OnEvtAsOwnerChange()方法向UI上报共享者变更通知事件,UI刷新共享者信息。

     

    代码示例:

    //Java code
    public void OnEvtAsOwnerChange(TsdkConference conference,TsdkConfAsActionType actionType, TsdkAttendee owner){
            Log.i(TAG, "handleAsOwnerChange");
            if (owner==null||self==null){
                return;
            }
            switch (actionType){
                case TSDK_E_CONF_AS_ACTION_ADD:
                    if (owner.getBaseInfo().getNumber().equals(self.getNumber())){
                        mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.SCREEN_SHARE_STATE, actionType);
                    }else {
                        stopScreenShare();
                        mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.SCREEN_SHARE_STATE, TsdkConfAsActionType.TSDK_E_CONF_AS_ACTION_MODIFY);
                    }
                    break;
                case TSDK_E_CONF_AS_ACTION_DELETE:
                    mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.SCREEN_SHARE_STATE, actionType);
                    break;
    
            }
        }
    
     

     

  • 开始观看屏幕或程序共享
    • 会议中,主讲人设置共享权限拥有者,邀请其他与会者进行屏幕或程序共享。
    • 共享者开始共享屏幕或程序。
    图2 观看屏幕或程序共享流程 

    UI调用TsdkConference对象中的attachSurfaceView()方法绑定视图,刷新共享显示区域。

    代码示例:
    //Java code
    public void attachSurfaceView(ViewGroup container, Context context)
    {
        if (null == currentConference)
        {
            Log.e(TAG,  "attach surface view failed, currentConference is null ");
            return;
        }
        currentConference.attachSurfaceView(container, context);
    }
    
     
  • 结束观看屏幕或程序共享
    用户在进行屏幕或者程序共享中结束共享屏幕或程序。
    图3 结束观看屏幕或程序共享流程 
    SDK在收到服务器返回的结束共享状态通知后,通过TsdkNotify对象中onEvtAsStateChange()方法向UI上报应用共享状态通知事件。
    说明: 

    共享状态可参考枚举类TsdkConfShareState,其中TsdkConfShareState.TSDK_E_CONF_AS_STATE_NULL为结束程序或者屏幕共享状态。

    代码示例:
    //Java code
    public void handleAsStateChange(TsdkConfAsStateInfo asStateInfo)
    {
        switch (asStateInfo.getState())
        {
            case 0:
    	    mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.END_AS_SHARE, asStateInfo);
                break;
    	default:
    	    break;
    	}
    }
    
     
  • 邀请共享
    主讲人或者主席在会议中邀请别人共享。
    图4 邀请共享流程 
  1. 主讲人侧UI调用TsdkConference对象中的setAsOwner()方法设置共享人。

     

    说明: 

    attendee 为被邀者号码。

    actionType 为共享行为类型。TSDK_E_CONF_AS_ACTION_ADD 为邀请共享,TSDK_E_CONF_AS_ACTION_DELETE 为取消共享。

    代码示例:

    //Java code
    public int setAsOwner(String attendee, TsdkConfAsActionType actionType){
            if (null == currentConference)
            {
                Log.e(TAG,  "clear annotation failed, currentConference is null ");
                return -1;
            }
            return currentConference.setAsOwner(attendee, actionType);
        }
    
     

     

  2. 主讲人侧和其他与会者侧SDK在收到服务器返回的令牌消息通知后,通过TsdkNotify对象中OnEvtAsOwnerChange()方法向UI上报共享者变更通知事件,UI刷新共享者信息。

     

    代码示例:

    //Java code
    public void OnEvtAsOwnerChange(TsdkConference conference,TsdkConfAsActionType actionType, TsdkAttendee owner){
            Log.i(TAG, "handleAsOwnerChange");
    if (owner==null||getCurrentConferenceSelf()==null){
                return;
            }
            switch (actionType){
                case TSDK_E_CONF_AS_ACTION_ADD:
                    if (owner.getBaseInfo().getNumber().equals(getCurrentConferenceSelf().getNumber())){
                        mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.SCREEN_SHARE_STATE, actionType);
                    }else {
                        mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.SCREEN_SHARE_STATE, TsdkConfAsActionType.TSDK_E_CONF_AS_ACTION_MODIFY);
                    }
                    break;
                case TSDK_E_CONF_AS_ACTION_DELETE:
                case TSDK_E_CONF_AS_ACTION_REQUEST:
                    mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.SCREEN_SHARE_STATE, actionType);
                    break;
            }
    
        }
    
     

     

  3. 被邀侧UI调用TsdkConference对象中的startScreenShare()方法开始共享屏幕。

     

    说明: 

    同意可以调用startScreenShare方法开始共享,拒绝可以调用setAsOwner方法取消共享。

    在调用开始屏幕共享startScreenShare()方法之前,UI侧需要先调用MediaProjectionManager.createScreenCaptureIntent()方法向系统申请截屏权限。

    在申请截屏权限成功的回调onActivityResult中再调用startScreenShare()方法开始共享屏幕。

    代码示例:

    //Java code
    public int startScreenShare(Context context, Intent data){
            if (null == currentConference)
            {
                Log.e(TAG,  "start screen share failed, currentConference is null ");
                return -1;
            }
            int result =  currentConference.startScreenShare(context,data);
            return result;
        }
    
     

     

  4. 主讲人侧和其他与会者侧SDK在收到服务器返回的结束共享状态通知后,通过TsdkNotify对象中onEvtAsStateChange()方法向UI上报应用共享状态通知事件,UI刷新屏幕共享状态信息。

     

    代码示例:

    //Java code
    public void onEvtAsStateChange(TsdkConference conference, TsdkConfAppShareType shareType,TsdkConfAsStateInfo asStateInfo)
        {
            Log.i(TAG, "handleAsStateChange");
    
            switch (TsdkConfShareState.enumOf(asStateInfo.getState()))
            {
                // 开始共享
                case TSDK_E_CONF_AS_STATE_VIEW:
                    isShareAs = true;
                    mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.START_DATA_CONF_SHARE, asStateInfo);
                    break;
    
                // 结束共享
                case TSDK_E_CONF_AS_STATE_NULL:
                    isShareAs = false;
                    if ((0 == documentId.size() || null == documentId))
                    {
                        mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.END_DATA_CONF_SHARE, asStateInfo);
                    }
                    break;
                default:
                    break;
            }
        }
    
     

     

  5. 主讲人侧和其他与会者侧SDK在收到服务器返回的令牌消息通知后,通过TsdkNotify对象中OnEvtAsOwnerChange()方法向UI上报共享者变更通知事件,UI刷新共享者信息。

     

    代码示例:

    //Java code
    public void OnEvtAsOwnerChange(TsdkConference conference,TsdkConfAsActionType actionType, TsdkAttendee owner){
            Log.i(TAG, "handleAsOwnerChange");
    if (owner==null||getCurrentConferenceSelf()==null){
                return;
            }
            switch (actionType){
                case TSDK_E_CONF_AS_ACTION_ADD:
                    if (owner.getBaseInfo().getNumber().equals(getCurrentConferenceSelf().getNumber())){
                        mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.SCREEN_SHARE_STATE, actionType);
                    }else {
                        mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.SCREEN_SHARE_STATE, TsdkConfAsActionType.TSDK_E_CONF_AS_ACTION_MODIFY);
                    }
                    break;
                case TSDK_E_CONF_AS_ACTION_DELETE:
                case TSDK_E_CONF_AS_ACTION_REQUEST:
                    mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.SCREEN_SHARE_STATE, actionType);
                    break;
            }
    
    
            }
    
     

     

  • 取消邀请共享
    主讲人或者主席在会议中取消别人共享。
    图5 取消邀请共享流程 
  1. 主讲人侧UI调用TsdkConference对象中的setAsOwner()方法取消共享人权限。

     

    代码示例:
    //Java code
    public int setAsOwner(String attendee, TsdkConfAsActionType actionType){
            if (null == currentConference)
            {
                Log.e(TAG,  "clear annotation failed, currentConference is null ");
                return -1;
            }
            return currentConference.setAsOwner(attendee, actionType);
        }
    
     

     

  2. 主讲人侧和其他与会者侧SDK在收到服务器返回的令牌消息通知后,通过TsdkNotify对象中OnEvtAsOwnerChange()方法向UI上报共享者变更通知事件,UI刷新共享者信息。

     

    代码示例:

    //Java code
    public void OnEvtAsOwnerChange(TsdkConference conference,TsdkConfAsActionType actionType, TsdkAttendee owner){
            Log.i(TAG, "handleAsOwnerChange");
            if (owner==null||self==null){
                return;
            }
            switch (actionType){
                case TSDK_E_CONF_AS_ACTION_ADD:
                    if (owner.getBaseInfo().getNumber().equals(self.getNumber())){
                        mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.SCREEN_SHARE_STATE, actionType);
                    }else {
                        stopScreenShare();
                        mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.SCREEN_SHARE_STATE, TsdkConfAsActionType.TSDK_E_CONF_AS_ACTION_MODIFY);
                    }
                    break;
                case TSDK_E_CONF_AS_ACTION_DELETE:
                    mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.SCREEN_SHARE_STATE, actionType);
                    break;
    
            }
    
     

     

注意事项

无。

文档和白板共享

描述

会议中,移动与会者观看文档或白板共享。

说明: 

移动应用程序暂不具备共享文档和白板的能力,文档或白板的共享者为PC应用程序。

前提条件

  • 加入数据会议成功。
  • 加载文档/白板共享模块成功。

业务流程

  • 开始观看文档或白板共享
    • 会议中,主讲人设置共享权限拥有者,邀请其他与会者进行文档或白板共享。
    • 共享者开始共享文档或白板。
    图6 开始观看文档或白板共享流程 
  1. UI调用TsdkConference对象中的attachSurfaceView()方法绑定视图,刷新共享显示区域。

     

    代码示例:
    //Java code
    public void attachSurfaceView(ViewGroup container, Context context)
    {
        if (null == currentConference)
        {
            Log.e(TAG,  "attach surface view failed, currentConference is null ");
            return;
        }
        currentConference.attachSurfaceView(container, context);
    }
    
     

     

  2. 如果文档共享者打开文档,移动与会者侧SDK下载到一个文档头后,通过TsdkNotify对象中onEvtDsDocNew()方法向UI上报新建一个共享文档事件。

     

    如果共享侧新建一个空的白板文档,移动侧SDK下载到一个白板文档头后,通过TsdkNotify对象中onEvtWbDocNew()方法向UI上报新建一个白板文档事件。

    代码示例:
    Java code
    public void handleWbDocNew(TsdkDocBaseInfo docBaseInfo)
    {
    	if (null == docBaseInfo)
    	{
    		return;
    	}
    
    	documentId.add(docBaseInfo.getDocumentId());
    	mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.START_DATA_CONF_SHARE, docBaseInfo);
    }
    
     
    Java code
    public void handleDsDocNew(TsdkDocBaseInfo docBaseInfo)
    {
    	if (null == docBaseInfo)
    	{
    		return;
    	}
    
    	documentId.add(docBaseInfo.getDocumentId());
    	mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.START_DATA_CONF_SHARE, docBaseInfo);
    }
    
     

     

  • 结束观看文档或白板共享

    PC端用户在进行文档或者白板共享中结束共享文档或白板。

    图7 结束观看文档或白板共享流程 

    如果移动侧SDK通过TsdkNotify对象中的onEvtDsDocDel()方法向UI上报文档被删除通知消息,UI关闭文档共享显示窗口。

    如果移动侧SDK通过TsdkNotify对象中的onEvtWbDocDel()方法向UI上报白板被删除通知消息,UI关闭白板共享显示窗口。

    代码示例:

    //Java code
    public void handleDsDocDel(TsdkDocShareDelDocInfo docShareDelDocInfo)
    {
    	if (null == docShareDelDocInfo)
    	{
    		return;
    	}
    
    	Iterator<Integer> iterator = documentId.iterator();
    	while (iterator.hasNext())
    	{
    		if (iterator.next() == docShareDelDocInfo.getDocBaseInfo().getDocumentId())
    		{
    			iterator.remove();
    		}
    	}
    
    	if (0 == documentId.size() && !isShareAs)
    	{
    		mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.END_DATA_CONF_SHARE, docShareDelDocInfo);
    	}
    }
    
     
    //Java code
    public void handleWbDocDel(TsdkWbDelDocInfo wbDelDocInfo)
    {
    	if (null == wbDelDocInfo)
    	{
    		return;
    	}
    
    	Iterator<Integer> iterator = documentId.iterator();
    	while (iterator.hasNext())
    	{
    		if (iterator.next() == wbDelDocInfo.getWbBaseInfo().getDocumentId())
    		{
    			iterator.remove();
    		}
    	}
    
    	if (0 == documentId.size() && !isShareAs)
    	{
    		mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.END_DATA_CONF_SHARE, wbDelDocInfo);
    	}
    }
    
     

注意事项

无。

标注

描述

在屏幕共享中,与会者间可以通过标注功能在共享界面进行远程交流。

前提条件

正在进行屏幕共享。

业务流程
图8 开始和结束标注流程 
  1. 主讲人侧UI调用TsdkConference对象中的startAnnotation()方法开始标注。

     

    代码示例:

    //Java code
    public int startAnnotation( ){
            if (null == currentConference)
            {
                Log.e(TAG,  "start annotation failed, currentConference is null ");
                return -1;
            }
            int result =  currentConference.startAnnotation();
            return result;
        }
    
     

     

  2. 主讲人侧和其他与会者侧SDK在收到服务器返回的开始标注状态通知后,通过TsdkNotify对象中onEvtAsStateChange()方法向UI上报应用共享状态通知事件,UI刷新屏幕标注状态信息。

     

    代码示例:

    //Java code
    public void onEvtAsStateChange(TsdkConference conference, TsdkConfAppShareType shareType,TsdkConfAsStateInfo asStateInfo)
        {
            Log.i(TAG, "handleAsStateChange");
    
            switch (TsdkConfShareState.enumOf(asStateInfo.getState()))
            {
                // 开始共享
                case TSDK_E_CONF_AS_STATE_VIEW:
                    isShareAs = true;
                    mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.START_DATA_CONF_SHARE, asStateInfo);
                    break;
    
                // 结束共享
                case TSDK_E_CONF_AS_STATE_NULL:
                    isShareAs = false;
                    if ((0 == documentId.size() || null == documentId))
                    {
                        mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.END_DATA_CONF_SHARE, asStateInfo);
                    }
                    break;
                default:
                    break;
            }
        }
    
     

     

  3. 主讲人侧UI调用TsdkConference对象中的setAnnotationPen()方法设置标注笔的颜色和宽度参数。

     

    代码示例:

    //Java code
    public void setAnnotationPen(int penColor, int penWidth) {
            if (null == currentConference)
            {
                Log.e(TAG,  "set annotation pen failed, currentConference is null ");
                return;
            }
            currentConference.setAnnotationPen(penColor, penWidth);
        }
    
     

     

  4. 主讲人侧UI调用TsdkConference对象中的setAnnotationLocalStatus()方法打开本地标注工具。

     

    代码示例:

    //Java code
    public void setAnnotationLocalStatus(boolean enable) {
            if (null == currentConference)
            {
                Log.e(TAG,  "set annotation local status failed, currentConference is null ");
                return;
            }
            currentConference.setAnnotationLocalStatus(enable);
        }
    
     
    说明: 
    1. 在共享端开始标注后,观看端可以通过P3~P5步骤开始和停止本端标注。
    2. 打开本地标注工具后,UI可以调用TsdkConference对象中的setAnnotationPen()方法设置标注笔的颜色和宽度进行标注,也可以调用TsdkConference对象中的eraseAnnotation()方法擦除标注和clearAnnotation()方法清除标注。

     

  5. 主讲人侧UI调用TsdkConference对象中的setAnnotationLocalStatus()方法关闭本地标注工具。

     

    代码示例:

    //Java code
    public void setAnnotationLocalStatus(boolean enable) {
            if (null == currentConference)
            {
                Log.e(TAG,  "set annotation local status failed, currentConference is null ");
                return;
            }
            currentConference.setAnnotationLocalStatus(enable);
        }
    
     

     

  6. 主讲人侧UI调用TsdkConference对象中的stopAnnotation()方法停止标注。

     

    代码示例:

    //Java code
    public int stopAnnotation(){
            if (null == currentConference)
            {
                Log.e(TAG,  "stop annotation failed, currentConference is null ");
                return -1;
            }
            int result =  currentConference.stopAnnotation();
            return result;
        }
    
     

     

  7. 主讲人侧和其他与会者侧SDK在收到服务器返回的停止标注状态通知后,通过TsdkNotify对象中onEvtAsStateChange()方法向UI上报应用共享状态通知事件,UI刷新屏幕标注状态信息。

     

    代码示例:

    //Java code
    public void onEvtAsStateChange(TsdkConference conference, TsdkConfAppShareType shareType,TsdkConfAsStateInfo asStateInfo)
        {
            Log.i(TAG, "handleAsStateChange");
    
            switch (TsdkConfShareState.enumOf(asStateInfo.getState()))
            {
                // 开始共享
                case TSDK_E_CONF_AS_STATE_VIEW:
                    isShareAs = true;
                    mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.START_DATA_CONF_SHARE, asStateInfo);
                    break;
    
                // 结束共享
                case TSDK_E_CONF_AS_STATE_NULL:
                    isShareAs = false;
                    if ((0 == documentId.size() || null == documentId))
                    {
                        mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.END_DATA_CONF_SHARE, asStateInfo);
                    }
                    break;
                default:
                    break;
            }
        }
    
     

     

注意事项

无。

聊天

描述

会议中,所有人可以收到其他与会者发送的聊天消息内容。

前提条件

加入数据会议成功。

业务流程

图9 发送聊天消息 
  1. UI调用TsdkConference类的sendChatMsg()方法发送聊天消息。

     

    代码示例:
    //Java code
     public void sendConfMessage(String message)
    {
    	if (null == currentConference)
    	{
    		Log.e(TAG,  "send chat failed, currentConference is null ");
    		return;
    	}
    	TsdkConfChatMsgInfo chatMsgInfo = new TsdkConfChatMsgInfo();
    	chatMsgInfo.setChatType(TsdkConfChatType.TSDK_E_CONF_CHAT_PUBLIC);
    	chatMsgInfo.setChatMsg(message);
    	chatMsgInfo.setSenderDisplayName(self.getDisplayName());
    	currentConference.sendChatMsg(chatMsgInfo);
    }
    
     

     

  1. 发送消息侧、其他与会者侧SDK收到服务器返回的发送消息响应,向UI上报会议中的聊天消息通知事件onEvtRecvChatMsg,UI刷新界面显示消息内容。

     

    代码示例:
    //Java code
    public void handleRecvChatMsg(TsdkConfChatMsgInfo confChatMsgInfo)
        {
            mConfNotification.onConfEventNotify(ConfConstant.CONF_EVENT.CONF_CHAT_MSG, confChatMsgInfo);
        }
    
     

     

注意事项

无。