更新時間:2019-11-20
描述
用戶正在會議中,用戶設(shè)備的網(wǎng)絡(luò)發(fā)生變化時,應(yīng)用程序可以自動恢復(fù)會議連接。
前提條件
用戶正在會議中,應(yīng)用程序檢測到IP地址變化。
業(yè)務(wù)流程
若應(yīng)用程序期望SDK嘗試以最大能力自動恢復(fù),需要將參數(shù)TsdkLocalAddress對象中的屬性isTryResume設(shè)置為1。
代碼示例:
//java code public int resetConfig(boolean isVpn) { int ret; String ipAddress = DeviceManager.getLocalIpAddress(isVpn); if ("".equals(ipAddress) || localIpAddress.equals(ipAddress)) { localIpAddress = ipAddress; return -1; } localIpAddress = ipAddress; TsdkLocalAddress localAddress = new TsdkLocalAddress(); localAddress.setIpAddress(localIpAddress); localAddress.setIsTryResume(1); ret = TsdkManager.getInstance().setConfigParam(localAddress); if (ret != 0) { LogUtil.e(TAG, "resetConfig local ip is failed, return " + ret); } return ret; }
若不在會議中,則僅進(jìn)行嘗試恢復(fù)登錄處理。
代碼示例:
//java code @Override public void onEvtConfResumingInd(TsdkConference conference) { LogUtil.i(TAG, "onEvtConfResumingInd notify."); MeetingMgr.getInstance().handleConfResumingInd(); }
若在會議中,建議應(yīng)用程序僅提示“會議正在恢復(fù)中”。
代碼示例:
//java code @Override public void onEvtLoginResumingInd(long userId) { LogUtil.i(TAG, "onEvtLoginResumingInd notify."); LoginMgr.getInstance().handLoginResumingInd((int)userId); }
登錄狀態(tài)恢復(fù)過程中,SDK上報的過程事件通知與普通登錄處理相同?;謴?fù)過程若出現(xiàn)異常,則通過onEvtLoginResumeResult()方法上報原因。只有登錄恢復(fù)成功,SDK才會進(jìn)行會議恢復(fù)處理。
代碼示例:
//java code @Override public void onEvtLoginResumeResult(long userId, TsdkCommonResult result) { LogUtil.i(TAG, "onEvtLoginResumeResult notify."); LoginMgr.getInstance().handLoginResumeResult(result); }
代碼示例:
//java code @Override public void onEvtConfResumeResult(TsdkConference conference, TsdkCommonResult result, TsdkResumeConfIndInfo info) { LogUtil.i(TAG, "onEvtConfResumeResult notify."); MeetingMgr.getInstance().handleConfResumeResult(conference, result, info); }
注意事項
若SDK在首次上報的onEvtConfResumingInd事件60秒內(nèi),未正?;謴?fù)會議,SDK會自動放棄恢復(fù)。