JLChen
2021-11-30 efad979b6fae76fb37a4de7e94e6bac0a85cb72c
HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs
@@ -57,6 +57,18 @@
        }
        /// <summary>
        /// 如果域名包含china,则SDK 使用乐橙的中国大陆(正式)域名
        /// </summary>
        /// <returns></returns>
        bool GetIsChinaMainland()
        {
            //强制使用国内
            //return true;
            return OnAppConfig.Instance.RequestHttpsHost.Contains("china");//如果域名包含china,则SDK 使用乐橙的中国大陆(正式)域名
        }
        /// <summary>
        /// 监控页面
        /// </summary>
        /// <param name="mESVideoInfo"></param>
@@ -71,11 +83,12 @@
            {
                //乐橙可视对讲
                //1.初始化LCOpenSDK_Api
                LCApiKit.SharedInstance().IsChinaMainland = GetIsChinaMainland();
                LCApiKit.SharedInstance().InitSDKOpenApi(mESVideoInfo.Lc_AccessToken);
                LCApiKit.SharedInstance().CurrentDevicePlayToken = mESVideoInfo.Lc_PlayToken;
                LCApiKit.SharedInstance().CurrentDeviceId = mESVideoInfo.Lc_DeviceId;
                LCApiKit.SharedInstance().CurrentDeviceName = mESVideoInfo.DeviceName;
                LCApiKit.SharedInstance().CurrentPsk = mESVideoInfo.Lc_DeviceId;
                LCApiKit.SharedInstance().CurrentPsk = mESVideoInfo.Lc_Psk;
                //2.调整监视页面
                LCOnMonitorViewController vc = new LCOnMonitorViewController();
                mOnLCCallDelegate = new OnLCCallDelegate(this);
@@ -83,7 +96,7 @@
                //vc.MLCCallDelegate = new OnLCCallDelegate(this);
                Shared.Application.currentVC.NavigationController.PushViewController(vc, true);
            }
            else
            else if(interphoneType == InterphoneType.FLVI.ToString())
            {
                ESOnMonitorViewController vc = new ESOnMonitorViewController();
@@ -93,36 +106,62 @@
                //vc.RoomName = mESVideoInfo.RoomName;
                //vc.MESCallDelegate = new OnESCallDelegate(this);
                Shared.Application.currentVC.NavigationController.PushViewController(vc, true);
            }else if (interphoneType == InterphoneType.HDL.ToString())
            {
                //HDLLinphone 狄耐克
                HDLLinphone.Current.ShowESVideoMonitor(mESVideoInfo);
            }
            else
            {
                HDLUtils.WriteLine("未对接,不支持监视");
            }
#else
            Intent intent = null;
            if (interphoneType == InterphoneType.IMOUVISIAL.ToString())
            {
                intent = new Intent(Shared.Application.Activity, typeof(HDL_ON_Android.LeChengVideoActivity));
                //=========乐橙==========
                intent.PutExtra("Type", 0);
                intent.PutExtra("callId", mESVideoInfo.callId);
                intent.PutExtra("DeviceName", mESVideoInfo.DeviceName);
                intent.PutExtra("AccessToken", mESVideoInfo.Lc_AccessToken);
                intent.PutExtra("DeviceId", mESVideoInfo.Lc_DeviceId);
                intent.PutExtra("Location", GetIsChinaMainland() ? 0 : 1);//如果域名包含china,则是国内账号);
                intent.PutExtra("PlayToken", mESVideoInfo.Lc_PlayToken);
                intent.PutExtra("Psk", mESVideoInfo.Lc_Psk);
                Shared.Application.Activity.StartActivity(intent);
            }
            else if (interphoneType == InterphoneType.FLVI.ToString())
            {
                intent = new Intent(Shared.Application.Activity, typeof(HDL_ON_Android.VideoActivity));
                intent.PutExtra("ESVideoUUID", mESVideoInfo.ESVideoUUID);
                intent.PutExtra("uuid", mESVideoInfo.uuid);
                intent.PutExtra("DeviceName", mESVideoInfo.DeviceName);
                intent.PutExtra("cmtID", mESVideoInfo.cmtID);
                intent.PutExtra("roomno", mESVideoInfo.roomno);
                intent.PutExtra("unitno", mESVideoInfo.unitno);
                intent.PutExtra("HomeID", PirSend.HomeId);
                intent.PutExtra("callId", mESVideoInfo.callId);
                intent.PutExtra("Type", 0);
                Shared.Application.Activity.StartActivity(intent);
            }
            else if (interphoneType == InterphoneType.HDL.ToString())
            {
                //HDLLinphone 狄耐克
                HDLLinphone.Current.ShowESVideoMonitor(mESVideoInfo);
            }
            else
            {
                intent = new Intent(Shared.Application.Activity, typeof(HDL_ON_Android.VideoActivity));
                HDLUtils.WriteLine("未对接,不支持监视");
            }
            intent.PutExtra("ESVideoUUID", mESVideoInfo.ESVideoUUID);
            intent.PutExtra("uuid", mESVideoInfo.uuid);
            intent.PutExtra("DeviceName", mESVideoInfo.DeviceName);
            intent.PutExtra("cmtID", mESVideoInfo.cmtID);
            intent.PutExtra("roomno", mESVideoInfo.roomno);
            intent.PutExtra("unitno", mESVideoInfo.unitno);
            intent.PutExtra("HomeID", PirSend.HomeId);
            intent.PutExtra("callId", mESVideoInfo.callId);
            intent.PutExtra("Type", 0);
            //=========乐橙==========
            intent.PutExtra("AccessToken", mESVideoInfo.Lc_AccessToken);
            intent.PutExtra("DeviceId", mESVideoInfo.Lc_DeviceId);
            intent.PutExtra("Location", OnAppConfig.Instance.RequestHttpsHost.Contains("China") ? 0 : 1);//如果域名包含china,则是国内账号);
            intent.PutExtra("PlayToken", mESVideoInfo.Lc_PlayToken);
            intent.PutExtra("Psk", mESVideoInfo.Lc_Psk);
            Shared.Application.Activity.StartActivity(intent);
#endif
        }
@@ -141,12 +180,13 @@
            {
                //乐橙可视对讲
                //1.初始化LCOpenSDK_Api
                LCApiKit.SharedInstance().IsChinaMainland = GetIsChinaMainland();
                LCApiKit.SharedInstance().InitSDKOpenApi(mESVideoInfo.Lc_AccessToken);
                //2021-05-18 目前推送的PlayToken;有问题会导致SDK崩溃,暂时不传
                //LCApiKit.SharedInstance().CurrentDevicePlayToken = mESVideoInfo.Lc_PlayToken;
                LCApiKit.SharedInstance().CurrentDeviceId = mESVideoInfo.Lc_DeviceId;
                LCApiKit.SharedInstance().CurrentDeviceName = mESVideoInfo.DeviceName;
                LCApiKit.SharedInstance().CurrentPsk = mESVideoInfo.Lc_DeviceId;
                LCApiKit.SharedInstance().CurrentPsk = mESVideoInfo.Lc_Psk;
                //2.跳转乐橙呼叫页面
                LCOnIntercomViewController vc = new LCOnIntercomViewController();
                mOnLCCallDelegate = new OnLCCallDelegate(this);
@@ -169,7 +209,13 @@
                EZSDK.IOS.EZSDK.SharedInstance().PlayWithDeviceSerial(mESVideoInfo.DeviceSerial);
            }
            else
            else if (interphoneType == InterphoneType.HDL.ToString())
            {
                //HDL Linphone 狄耐克
            }
            else if (interphoneType == InterphoneType.FLVI.ToString())
            {
                ESOnIntercomViewController vc = new ESOnIntercomViewController();
@@ -181,41 +227,89 @@
                mOnESCallDelegate = new OnESCallDelegate(this);
                vc.MESCallDelegate = mOnESCallDelegate;
                Shared.Application.currentVC.NavigationController.PushViewController(vc, true);
            }else{
                HDLUtils.WriteLine("未支持的可视对讲类型");
            }
#else
            #region
            #region Android 处理
            Intent intent = null;
            if (interphoneType == InterphoneType.IMOUVISIAL.ToString())
            {
                //待删减不必要参数
                intent = new Intent(Shared.Application.Activity, typeof(HDL_ON_Android.LeChengVideoActivity));
            } else if (interphoneType == InterphoneType.EZVIZ.ToString())
                //=========乐橙==========
                intent.PutExtra("Type", 1);
                intent.PutExtra("callId", mESVideoInfo.callId);
                intent.PutExtra("DeviceName", mESVideoInfo.DeviceName);
                intent.PutExtra("AccessToken", mESVideoInfo.Lc_AccessToken);
                intent.PutExtra("DeviceId", mESVideoInfo.Lc_DeviceId);
                intent.PutExtra("Location", GetIsChinaMainland() ? 0 : 1);//如果域名包含china,则是国内账号);
                intent.PutExtra("PlayToken", mESVideoInfo.Lc_PlayToken);
                intent.PutExtra("Psk", mESVideoInfo.Lc_Psk);
                Shared.Application.Activity.StartActivity(intent);
            }
            else if (interphoneType == InterphoneType.EZVIZ.ToString())
            {
                //萤石猫眼呼叫处理
                ((BaseActivity)Shared.Application.Activity).SetCamera(b =>
                {
                    if (b)
                    {
                        intent = new Android.Content.Intent();
                        var bundle = new Android.OS.Bundle();
                        //传递name参数为tinyphp
                        bundle.PutString("EzChildAccessToken", mESVideoInfo.Lc_AccessToken);
                        bundle.PutString("HdlToken", UserInfo.Current.LoginTokenString);
                        bundle.PutString("Url", OnAppConfig.Instance.RequestHttpsHost);
                        bundle.PutString("EzvizAppKey", "1aa98a90489b4838b966b57018b4b04b");
                        bundle.PutInt("Platform", 1);
                        bundle.PutString("HomeId", mESVideoInfo.HomeId);
                        bundle.PutString("DeviceSerial", mESVideoInfo.DeviceSerial);
                        intent.PutExtras(bundle);
                        intent.SetComponent(new Android.Content.ComponentName(Shared.Application.Activity, "com.videogo.MainActivity"));
                        Shared.Application.Activity.StartActivity(intent);
                    }
                });
                return;
            }
            else if (interphoneType == InterphoneType.HDL.ToString())
            {
                //HDL Linphone 狄耐克
            }
            else if (interphoneType == InterphoneType.FLVI.ToString())
            {
                //待删减不必要参数
                intent = new Intent(Shared.Application.Activity, typeof(HDL_ON_Android.VideoActivity));
                intent.PutExtra("ESVideoUUID", mESVideoInfo.ESVideoUUID);
                intent.PutExtra("uuid", mESVideoInfo.uuid);
                intent.PutExtra("DeviceName", mESVideoInfo.DeviceName);
                intent.PutExtra("cmtID", mESVideoInfo.cmtID);
                intent.PutExtra("roomno", mESVideoInfo.roomno);
                intent.PutExtra("unitno", mESVideoInfo.unitno);
                intent.PutExtra("HomeID", PirSend.HomeId);
                intent.PutExtra("callId", mESVideoInfo.callId);
                intent.PutExtra("Type", 1);
                Shared.Application.Activity.StartActivity(intent);
            }
            else
            {
                intent = new Intent(Shared.Application.Activity, typeof(HDL_ON_Android.VideoActivity));
                HDLUtils.WriteLine("未支持的可视对讲类型");
            }
            intent.PutExtra("ESVideoUUID", mESVideoInfo.ESVideoUUID);
            intent.PutExtra("uuid", mESVideoInfo.uuid);
            intent.PutExtra("DeviceName", mESVideoInfo.DeviceName);
            intent.PutExtra("cmtID", mESVideoInfo.cmtID);
            intent.PutExtra("roomno", mESVideoInfo.roomno);
            intent.PutExtra("unitno", mESVideoInfo.unitno);
            intent.PutExtra("HomeID", PirSend.HomeId);
            intent.PutExtra("callId", mESVideoInfo.callId);
            intent.PutExtra("Type", 1);
            //=========乐橙==========
            intent.PutExtra("AccessToken", mESVideoInfo.Lc_AccessToken);
            intent.PutExtra("DeviceId", mESVideoInfo.Lc_DeviceId);
            intent.PutExtra("Location", OnAppConfig.Instance.RequestHttpsHost.Contains("China") ? 0 : 1);//如果域名包含china,则是国内账号);
            intent.PutExtra("PlayToken", mESVideoInfo.Lc_PlayToken);
            intent.PutExtra("Psk", mESVideoInfo.Lc_Psk);
            Shared.Application.Activity.StartActivity(intent);
            #endregion
#endif
@@ -723,8 +817,11 @@
        /// 设备序列号
        /// </summary>
        public string DeviceSerial = string.Empty;
        //========================HDL SIP==========================
        /// <summary>
        /// 设备sip账号 interphoneType是HDL时才会有值
        /// </summary>
        public string deviceSipAccount;
    }
@@ -764,6 +861,10 @@
        /// 萤石猫眼呼叫
        /// </summary>
        EZVIZ,
        /// <summary>
        /// 狄耐克 HDL Linphone
        /// </summary>
        HDL,
    }