nigel wei
2024-08-31 a1b0a0e9ac707571a436272f41e3ee5aeef5aee2
HDL_ON/Common/HDLCommon.cs
@@ -7,6 +7,10 @@
using HDL_ON.Entity;
using System.Threading;
using HDL_ON.DriverLayer;
#if __IOS__
using Other;
using Shared.IOS.HDLLinphoneSDK;
#endif
namespace HDL_ON
{
    /// <summary>
@@ -305,7 +309,7 @@
                        ESOnVideo.Current.ShowESvideoVideoIntercom(eSVideoInfo, InterphoneType.FLVI.ToString());
                    }
                    else if (jpushMessageInfo.messageType == (PushMessageType.HDL_INTERPHONE.ToString()))
                    else if (jpushMessageInfo.messageType == PushMessageType.HDL_INTERPHONE.ToString())
                    {
                        if (string.IsNullOrEmpty(jpushMessageInfo.expantContent)) return;
@@ -368,6 +372,72 @@
                                }
                            }
                            catch { }
#if __ANDROID__
                            Com.Hdl.Hdllinphonesdk.HDLLinphoneKit.Instance.MissedCallsTime = 30;
                            Com.Hdl.Hdllinphonesdk.HDLLinphoneKit.Instance.SetMediaPlayerLooping(true);
                            Com.Hdl.Hdllinphonesdk.HDLLinphoneKit.Instance.PlayRingtone();
                            new Thread(() =>
                            {
                                try
                                {
                                    DateTime dateTime = DateTime.Now;
                                    while (true)
                                    {
                                        Thread.Sleep(1000);
                                        if (!Com.Hdl.Hdllinphonesdk.HDLLinphoneKit.Instance.MediaPlayerPlayingStatus || dateTime.AddSeconds(Com.Hdl.Hdllinphonesdk.HDLLinphoneKit.Instance.MissedCallsTime) <= DateTime.Now)
                                        {
                                            break;
                                        }
                                    }
                                    Com.Hdl.Hdllinphonesdk.HDLLinphoneKit.Instance.SetMediaPlayerLooping(false);
                                }
                                catch (Exception ex)
                                {
                                    MainPage.Log("error", "自研可视对讲铃声播放异常:" + ex.Message);
                                }
                            })
                            { IsBackground = true }.Start();
#elif __IOS__
                            SoundPlayer.Ins.PlaySound();
                            new Thread(() => {
                                int count = 0;
                                while (true)
                                {
                                    if (SoundPlayer.Ins.player == null)
                                    {
                                        break;
                                    }
                                    if (!SoundPlayer.Ins.player.Playing)
                                    {
                                        break;
                                    }
                                    System.Threading.Thread.Sleep(1000);
                                    count++;
                                    MainPage.Log("linphone 呼叫计时:" + count);
                                    if (count > 29)
                                    {
                                        SoundPlayer.Ins.StopSound();
                                        Application.RunOnMainThread(() => {
                                            try
                                            {
                                                HDLLinPhoneSDK.Instance().HideIntercomeVC();
                                            }catch(Exception ex)
                                            {
                                                MainPage.Log("error", "ios linphone 呼叫超时关闭界面异常:" + ex.Message);
                                            }
                                        });
                                        break;
                                    }
                                }
                            })
                            { IsBackground = true }.Start();
#endif
                            //HDL Linphone 狄耐克
                            eSVideoInfo.HomeId = jpushMessageInfo.HomeId;
                            eSVideoInfo.callId = json["callId"].ToString();
@@ -376,6 +446,7 @@
                            eSVideoInfo.deviceSipAccount = json["deviceSipAccount"].ToString();
                            eSVideoInfo.spk = json["spk"].ToString();
                            //ShowAlert("狄耐克门口机呼叫");
                            //打开呼叫页面
                            HDLLinphone.Current.ShowESVideoIntercom(eSVideoInfo, InterphoneType.HDL.ToString());