From 6b7a07bcbe147be7ed64994c40bcc5b0a2042aae Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期一, 05 七月 2021 11:23:35 +0800
Subject: [PATCH] 代码合并-温居城

---
 HDL-ON_Android/LeChengVideoActivity.cs |  304 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 304 insertions(+), 0 deletions(-)

diff --git a/HDL-ON_Android/LeChengVideoActivity.cs b/HDL-ON_Android/LeChengVideoActivity.cs
new file mode 100644
index 0000000..9020958
--- /dev/null
+++ b/HDL-ON_Android/LeChengVideoActivity.cs
@@ -0,0 +1,304 @@
+锘�
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Android;
+using Android.App;
+using Android.Content;
+using Android.Content.PM;
+using Android.Graphics;
+using Android.OS;
+using Android.Runtime;
+using Android.Support.V4.App;
+using Android.Support.V4.Content;
+using Android.Util;
+using Android.Views;
+using Android.Widget;
+using Com.Lechange.Opensdk.Api;
+using Com.Lechange.Opensdk.Device;
+using Com.Lechange.Opensdk.Listener;
+using Com.Lechange.Opensdk.Media;
+using HDL_ON.DAL.Server;
+using HDL_ON_Android.LeChengView.Form;
+using Java.Lang;
+
+namespace HDL_ON_Android
+{
+    [Activity(Label = "LeChengVideoActivity", WindowSoftInputMode = SoftInput.AdjustResize, LaunchMode = LaunchMode.SingleInstance, ConfigurationChanges = (ConfigChanges.Keyboard | ConfigChanges.KeyboardHidden | ConfigChanges.LayoutDirection | ConfigChanges.Locale | ConfigChanges.Orientation | ConfigChanges.ScreenSize), Theme = "@style/MyTheme1", ScreenOrientation = ScreenOrientation.Portrait)]
+    public class LeChengVideoActivity : Activity, View.IOnClickListener
+    {
+        private static LeChengVideoActivity CurtActivity;
+        //
+        private string URL = "openapi.easy4ip.com:443";
+        public string AccessToken = "";
+        public string DeviceId = "";
+        public string Psk = "";
+        public string PlayToken = "";//鎾斁playToken
+        public string CallId = "";//鍛煎彨Id
+        private int Type = 0;//0鐩戞帶锛�1瀵硅
+        /// <summary>
+        /// 0:鍥藉唴锛�1娴峰
+        /// </summary>
+        private int Location = 0;
+
+        private FrameLayout flWindow;
+        private FrameLayout flWindowContent;
+        private ImageView ivBack;
+        private TextView tvName;
+        private MonitorFragment monitorFragment = null;
+        private ReverseCallFragment reverseCallFragment = null;
+
+        public LCOpenSDK_PlayWindow mPlayWindow;
+
+        protected override void OnCreate(Bundle savedInstanceState)
+        {
+            base.OnCreate(savedInstanceState);
+
+            SetContentView(Resource.Layout.activity_video_phone);
+
+            CurtActivity = this;
+            AccessToken = Intent.GetStringExtra("AccessToken");//"St_0000d307a13c965c4db285469484490e"
+            DeviceId = Intent.GetStringExtra("DeviceId");//6K056CFAAJ8FFA1
+            Psk = Intent.GetStringExtra("Psk");//6K056CFAAJ8FFA1
+            PlayToken = Intent.GetStringExtra("PlayToken"); // 鎾斁playToken//"8a5e041afa674a2ba3e84d90a54ea962"
+            Type = Intent.GetIntExtra("Type", 0);//0鐩戞帶锛�1瀵硅//1
+            Location = Intent.GetIntExtra("Location", 0);//1
+            CallId = Intent.GetStringExtra("callId");//1384766990812426242
+
+            InitLCSDK();
+
+            IniView();
+
+            IniData();
+
+            Permissions();
+
+            if (Type == 0)
+            {
+                monitorFragment = new MonitorFragment();
+                FragmentManager.BeginTransaction().Replace(Resource.Id.content, monitorFragment).Commit();
+            }
+            else
+            {
+                reverseCallFragment = new ReverseCallFragment();
+                FragmentManager.BeginTransaction().Replace(Resource.Id.content, reverseCallFragment).Commit();
+            }
+        }
+
+        private void IniView()
+        {
+            //
+            flWindowContent = (FrameLayout)FindViewById(Resource.Id.remoteFrame);
+            flWindow = (FrameLayout)FindViewById(Resource.Id.live_window);
+
+            ivBack = (ImageView)FindViewById(Resource.Id.videoBackImg);
+            tvName = (TextView)FindViewById(Resource.Id.nameText);
+
+            tvName.SetText("DeviceName", null);
+            ivBack.SetOnClickListener(this);
+
+        }
+
+        private void IniData()
+        {
+            //
+            //SetStatusBarColor();// 杩欓噷璁捐鐨凾opBarColor鏄櫧鑹诧紝涓庣郴缁熷鑸爮瀛椾綋棰滆壊涓�鐩达紝鏆傛椂灞忚斀涓嶇敤
+
+            mPlayWindow = new LCOpenSDK_PlayWindow();
+            mPlayWindow.InitPlayWindow(this, flWindowContent, 0, true);
+
+            if (Location == 1)
+                URL = "openapi.easy4ip.com:443";
+        }
+
+        /// <summary>
+        ///  鍒濆鍖栦箰姗欏簱
+        /// </summary>
+        private void InitLCSDK()
+        {
+            InitParams initParams = new InitParams(this, URL, AccessToken);
+            LCOpenSDK_Api.InitOpenApi(initParams);
+        }
+
+        /// <summary>
+        /// 寮�濮嬫挱鏀撅紙棰勮锛�
+        /// </summary>
+        public void Play()
+        {
+            try
+            {
+                LCOpenSDK_ParamReal paramReal = new LCOpenSDK_ParamReal(AccessToken, DeviceId, 0, Psk, PlayToken, 1, false, true);
+                mPlayWindow.PlayRtspReal(paramReal);
+            }
+            catch (System.Exception e)
+            {
+                string sss = e.Message;
+            }
+        }
+
+        /// <summary>
+        /// 鍋滄棰勮锛堝仠姝㈡挱鏀剧敾闈級
+        /// </summary>
+        public void Stop()
+        {
+            mPlayWindow.StopRtspReal(true);//鍏抽棴瑙嗛
+        }
+
+        /// <summary>
+        /// 鎵撳紑瀵硅
+        /// </summary>
+        public void StartTalk()
+        {
+            CloseAudio();// 鍏抽棴Audio
+            LCOpenSDK_Talk.Listener = new AudioTalkerListener();//璁剧疆瀵硅鐩戝惉
+            // 瀵硅鍙傛暟
+            LCOpenSDK_ParamTalk paramTalk = new LCOpenSDK_ParamTalk(AccessToken, DeviceId, -1, Psk, PlayToken, true);
+            LCOpenSDK_Talk.PlayTalk(paramTalk);
+        }
+
+        /// <summary>
+        /// 鍏抽棴瀵硅
+        /// </summary>
+        public void StopTalk()
+        {
+            LCOpenSDK_Talk.StopTalk();
+            LCOpenSDK_Talk.Listener = null;
+        }
+
+        /// <summary>
+        /// 鎵撳紑澹伴煶锛堥瑙堢殑鏃跺�欏彲浠ュ惉鍒伴棬鍙f満浼犳潵鐨勫0闊筹級
+        /// </summary>
+        /// <returns></returns>
+        public bool OpenAudio()
+        {
+            return mPlayWindow.PlayAudio() == 0;
+        }
+
+        /// <summary>
+        /// 鍏抽棴澹伴煶锛堥瑙堢殑鏃跺�欏叧闂棬鍙f尋浼犳潵鐨勫0闊筹紝娉ㄦ剰锛氭墦寮�瀵硅鏃堕渶瑕佸厛璋冪敤姝ゆ柟娉曞叧闂0闊筹級
+        /// </summary>
+        /// <returns></returns>
+        public bool CloseAudio()
+        {
+            return mPlayWindow.StopAudio() == 0;
+        }
+
+        /// <summary>
+        /// 璁剧疆椤堕儴鐘舵�佹爮鑳屾櫙閫忔槑
+        /// </summary>
+        private void SetStatusBarColor()
+        {
+            Window.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds);
+            Window.SetStatusBarColor(Color.Transparent);
+        }
+
+        /// <summary>
+        /// 蹇呰鐨勪竴浜涙潈闄�
+        /// </summary>
+        private void Permissions()
+        {
+            string[] mPermissionList = new string[]
+            {
+                Manifest.Permission.WriteExternalStorage,
+                Manifest.Permission.ReadExternalStorage,
+                Manifest.Permission.Camera,
+                Manifest.Permission.RecordAudio
+            };
+
+            foreach (string permissions in mPermissionList)
+            {
+                if (ContextCompat.CheckSelfPermission(this, permissions) != 0)
+                {
+                    ActivityCompat.RequestPermissions(this, new string[] { permissions }, 1);
+                }
+            }
+        }
+
+        /// <summary>
+        /// 鐐瑰嚮浜嬩欢
+        /// </summary>
+        /// <param name="v"></param>
+        public void OnClick(View v)
+        {
+            if (v.Equals(ivBack))
+            {
+                this.Finish();
+            }
+        }
+
+        protected override void OnDestroy()
+        {
+            base.OnDestroy();
+
+            Stop();
+            mPlayWindow.UninitPlayWindow();//閿�姣佸簳灞傝祫婧�
+        }
+
+        /// <summary>
+        /// 瀵硅鐩戝惉
+        /// </summary>
+        class AudioTalkerListener : LCOpenSDK_TalkerListener
+        {
+            /// <summary>
+            /// 瀵硅缁撴灉鍥炶皟
+            /// </summary>
+            /// <param name="error"></param>
+            /// <param name="type"></param>
+            public override void OnTalkResult(string error, int type)
+            {
+                base.OnTalkResult(error, type);
+
+                try
+                {
+                    bool talkResult = false;
+                    if (type == 99 || error.Equals("-1000") || error.Equals("0") || error.Equals("1") || error.Equals("3"))
+                    {
+                        talkResult = false;
+                    }
+                    else if (error.Equals("4"))
+                    {
+                        talkResult = true;
+                    }
+
+                    if (!talkResult)
+                    {
+                        // 鎻愮ず瀵硅鎵撳紑澶辫触
+                        CurtActivity.StopTalk();
+                        CurtActivity.RunOnUiThread(() =>
+                        {
+                            Toast.MakeText(CurtActivity, Resource.String.talk_open_failed, ToastLength.Short).Show();
+                        });
+                    }
+                    else
+                    {
+                        CurtActivity.reverseCallFragment.PostAnswer();// post鎺ュ惉鐢佃瘽锛岀粰浜戠鍋氳褰�
+                        CurtActivity.reverseCallFragment.TimeStarts();//鎺ラ�氭垚鍔熸墦寮�璁℃椂鍣�
+                    }
+                }
+                catch { }
+            }
+
+            public override void OnTalkPlayReady()
+            {
+                base.OnTalkPlayReady();
+            }
+
+            public override void OnAudioReceive(byte[] bytes, int p1, int p2, int p3, int p4)
+            {
+                base.OnAudioReceive(bytes, p1, p2, p3, p4);
+            }
+
+            public override void OnAudioRecord(byte[] bytes, int p1, int p2, int p3, int p4)
+            {
+                base.OnAudioRecord(bytes, p1, p2, p3, p4);
+            }
+
+            public override void OnDataLength(int i)
+            {
+                base.OnDataLength(i);
+            }
+        }
+
+    }
+}

--
Gitblit v1.8.0