更新時間:2019-11-20
描述
用戶正在會議中,用戶設備的網(wǎng)絡發(fā)生變化時,應用程序可以自動恢復會議連接。
前提條件
用戶正在會議中,應用程序檢測到IP地址變化。
業(yè)務流程
若應用程序期望SDK嘗試以最大能力自動恢復,需要將參數(shù)TsdkLocalAddress對象中的屬性isTryResume設置為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; }
若不在會議中,則僅進行嘗試恢復登錄處理。
代碼示例:
//java code @Override public void onEvtConfResumingInd(TsdkConference conference) { LogUtil.i(TAG, "onEvtConfResumingInd notify."); MeetingMgr.getInstance().handleConfResumingInd(); }
若在會議中,建議應用程序僅提示“會議正在恢復中”。
代碼示例:
//java code @Override public void onEvtLoginResumingInd(long userId) { LogUtil.i(TAG, "onEvtLoginResumingInd notify."); LoginMgr.getInstance().handLoginResumingInd((int)userId); }
登錄狀態(tài)恢復過程中,SDK上報的過程事件通知與普通登錄處理相同?;謴瓦^程若出現(xiàn)異常,則通過onEvtLoginResumeResult()方法上報原因。只有登錄恢復成功,SDK才會進行會議恢復處理。
代碼示例:
//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),未正常恢復會議,SDK會自動放棄恢復。