From 764185112d44c387e16f0483d8da898f8d998944 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期五, 01 四月 2022 09:56:48 +0800 Subject: [PATCH] 大华可视对讲功能优化,自研可视对讲Android接入 --- HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs | 81 ++++++++++++++++++++++++++++------------ 1 files changed, 57 insertions(+), 24 deletions(-) diff --git a/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs b/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs index 49857bf..854604f 100644 --- a/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs +++ b/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs @@ -98,6 +98,7 @@ HDLLinphoneKit.Instance.InitLinphone(Application.Activity); //璁剧疆鏀跺埌鏉ョ數鍚庛�佹槸鍚﹂渶鑷姩璺宠浆鍛煎彨椤甸潰鏂规 HDLLinphoneKit.Instance.AutoJumpCallView = IsAutoJumpCallView; + //HDLLinphoneKit.Instance.HangUp();//鎸傛柇 //璁剧疆Listener鐩戝惉 setOnHDLLinphoneCallListener(); #endif @@ -196,8 +197,6 @@ { try { - - //鍏堟竻绌哄懠鍙拰鐩戣璁惧淇℃伅 if (clearCallInfo) { @@ -371,13 +370,14 @@ } #endregion - + #region 鈻� -- 璺宠浆鐩戞帶椤甸潰_______________________________ /// <summary> /// 璺宠浆鐩戞帶椤甸潰 /// </summary> /// <param name="mESVideoInfo"></param> - public void ShowESVideoMonitor(ESVideoInfo mESVideoInfo) + /// <param name="enableMic">鏄惁鎵撳紑楹﹀厠椋�</param> + public void ShowESVideoMonitor(ESVideoInfo mESVideoInfo,bool enableMic,bool isCallIn = false) { InitLinphone(); //sip璐﹀彿涓虹┖ @@ -395,6 +395,22 @@ mHDLCallVideoInfo.DeviceSipAccount = mESVideoInfo.deviceSipAccount;//鐩戣涓诲姩鍛煎彨闂ㄥ彛鏈烘椂鐢ㄥ埌 InitCallInfo(mHDLCallVideoInfo); + if (isCallIn) + { + HDLLinphoneKit.Instance.HangUp(); + } + else + { + openMonitorPage(enableMic); + } + } + + /// <summary> + /// 鎵撳紑鐩戣鐣岄潰 + /// </summary> + void openMonitorPage(bool enableMic) + { + #if __IOS__ HDLLinPhoneSDK.Instance().CallWithUserName(mHDLCallVideoInfo.DeviceSipAccount, mHDLCallVideoInfo.DeviceName); @@ -405,10 +421,16 @@ //2.璺宠浆鎵撳紑鐩戞帶椤甸潰 var intent = new Intent(Shared.Application.Activity, typeof(Com.Hdl.Hdllinphonesdk.Activity.HDLLinphoneMonitorActivity)); ; intent.PutExtra(HDLLinphoneKit.KeyTitleName, mHDLCallVideoInfo.DeviceName);//浼犲叆璁惧鍚嶇О涓烘樉绀烘爣棰� + intent.PutExtra(HDLLinphoneKit.Enablemic, enableMic);//鏄惁鎵撳紑楹﹀厠椋� Shared.Application.Activity.StartActivity(intent); + + + #endif } + + #endregion @@ -417,7 +439,8 @@ /// 鏀跺埌鎺ㄩ�侊紝鍚庡垽鏂懠鍙綇瀹呮槸鍚︿负褰撳墠浣忓畢锛屼笉鏄殑璇濋噸鏂拌幏鍙朣IP璐﹀彿骞剁櫥褰� /// </summary> /// <param name="mESVideoInfo"></param> - public void ShowESVideoIntercom(ESVideoInfo mESVideoInfo) + /// <param name="isHdlLinphone">鏄惁鏄嚜鐮斿彲瑙嗗璁�</param> + public void ShowESVideoIntercom(ESVideoInfo mESVideoInfo,bool isHdlLinphone) { InitLinphone(); @@ -430,26 +453,36 @@ mHDLCallVideoInfo.DeviceSipAccount = mESVideoInfo.deviceSipAccount; InitCallInfo(mHDLCallVideoInfo); - //褰撳墠鍛煎彨鏉ョ數鐨勪綇瀹呭拰涔嬪墠娉ㄥ唽鐧诲綍鐨勪綇瀹呬竴鑷寸殑鎯呭喌涓� - if (currentHDLSipInfo != null && currentHDLSipInfo.homeId == mESVideoInfo.HomeId) + if (isHdlLinphone) { - Utlis.WriteLine("CALL 鏀跺埌鎺ㄩ�� 鎺ㄩ�佷綇瀹呭拰涔嬪墠娉ㄥ唽鐧诲綍鐨勪綇瀹呬竴鑷�"); - CheckCallStateAndGotoPage(); - } - else - { - //娉ㄦ剰锛氫箣鍓嶆病鐧诲綍SIP璐﹀彿鎴栬�呬綇瀹呬笉涓�鑷寸殑鎯呭喌涓嬮渶瑕侀噸鏂拌幏鍙朣IP璐﹀彿 - //鑾峰彇鍛煎彨浣忓畢鐨凷IP璐﹀彿骞剁櫥褰� - Utlis.WriteLine("CALL 鏀跺埌鎺ㄩ�� 鍏朵粬浣忓畢锛岄噸鏂拌幏鍙栧懠鍙綇瀹呯殑SIP璐﹀彿骞剁櫥褰�"); - new Thread(() => + //褰撳墠鍛煎彨鏉ョ數鐨勪綇瀹呭拰涔嬪墠娉ㄥ唽鐧诲綍鐨勪綇瀹呬竴鑷寸殑鎯呭喌涓� + if (currentHDLSipInfo != null && currentHDLSipInfo.homeId == mESVideoInfo.HomeId) { - GetHDLSipInfoAndInitSDK(mESVideoInfo.HomeId, false); - }) - { IsBackground = false }.Start(); + Utlis.WriteLine("CALL 鏀跺埌鎺ㄩ�� 鎺ㄩ�佷綇瀹呭拰涔嬪墠娉ㄥ唽鐧诲綍鐨勪綇瀹呬竴鑷�"); + CheckCallStateAndGotoPage(true); + } + } + else { + //褰撳墠鍛煎彨鏉ョ數鐨勪綇瀹呭拰涔嬪墠娉ㄥ唽鐧诲綍鐨勪綇瀹呬竴鑷寸殑鎯呭喌涓� + if (currentHDLSipInfo != null && currentHDLSipInfo.homeId == mESVideoInfo.HomeId) + { + Utlis.WriteLine("CALL 鏀跺埌鎺ㄩ�� 鎺ㄩ�佷綇瀹呭拰涔嬪墠娉ㄥ唽鐧诲綍鐨勪綇瀹呬竴鑷�"); + CheckCallStateAndGotoPage(); + } + else + { + //娉ㄦ剰锛氫箣鍓嶆病鐧诲綍SIP璐﹀彿鎴栬�呬綇瀹呬笉涓�鑷寸殑鎯呭喌涓嬮渶瑕侀噸鏂拌幏鍙朣IP璐﹀彿 + //鑾峰彇鍛煎彨浣忓畢鐨凷IP璐﹀彿骞剁櫥褰� + Utlis.WriteLine("CALL 鏀跺埌鎺ㄩ�� 鍏朵粬浣忓畢锛岄噸鏂拌幏鍙栧懠鍙綇瀹呯殑SIP璐﹀彿骞剁櫥褰�"); + new Thread(() => + { + GetHDLSipInfoAndInitSDK(mESVideoInfo.HomeId, false); + }) + { IsBackground = false }.Start(); - // - CheckCallStateAndGotoPage(); - + // + CheckCallStateAndGotoPage(); + } } } @@ -458,14 +491,14 @@ /// 妫�娴嬫潵鐢电姸鎬侊紝鍒ゆ柇鏄惁椹笂鎵撳紑鍛煎彨椤甸潰锛屽鏋滆繕娌℃潵鐢靛垯寮�鍚嚎绋嬫娴嬬瓑寰� /// </summary> /// <param name="mESVideoInfo"></param> - public void CheckCallStateAndGotoPage() + public void CheckCallStateAndGotoPage(bool isHdlLinphone = false) { //濡傛灉寮�鍚簡鑷姩璺宠浆鏂规锛屽垯鏃犻渶缁х画涓嬮潰澶勭悊銆佹棤闇�鎵嬪姩璺宠浆 if (IsAutoJumpCallView) return; //鍏堢粨鏉熸帀涔嬪墠鐨勭嚎绋� EndCheckIncomingCallThread(); //妫�娴嬫槸鍚︽潵鐢典簡濡傛灉鏄洿鎺ヨ皟鏁村懠鍙〉闈㈠鏋滀笉鏄垯寮�鍚嚎绋嬬瓑寰呭垽鏂� - if (IsIncomingReceivedCallState()) { + if (IsIncomingReceivedCallState()|| isHdlLinphone) { Utlis.WriteLine("CALL 宸茬粡鏉ョ數浜嗐�傘�傘�傛墦寮�鍛煎彨椤甸潰"); GoToHDLLinphoneIntercomActivity(); } -- Gitblit v1.8.0