//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; //using HDL_ON.DAL.Server; //using HDL_ON_Android.LeChengView.Form; //using Java.IO; //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"; //海外(正式) // private static string URL_LC_CHINA = "openapi.lechange.cn:443"; //中国大陆(正式) // private static string URL_LC_Overseas = "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对讲 // private string DeviceName = "";// 备注 // /// // /// 0:国内,1海外 // /// // 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 // DeviceName = Intent.GetStringExtra("DeviceName"); // 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();// 这里设计的TopBarColor是白色,与系统导航栏字体颜色一直,暂时屏蔽不用 // mPlayWindow = new LCOpenSDK_PlayWindow(); // mPlayWindow.InitPlayWindow(this, flWindowContent, 0, true); // } // /// // /// 初始化乐橙库 // /// // private void InitLCSDK() // { // if (Location == 1) // { // URL = URL_LC_Overseas; // }else { // URL = URL_LC_CHINA; // } // InitParams initParams = new InitParams(this, URL, AccessToken); // LCOpenSDK_Api.InitOpenApi(initParams); // } // /// // /// 开始播放(预览) // /// // public void Play() // { // try // { // LCOpenSDK_ParamReal paramReal = new LCOpenSDK_ParamReal(AccessToken, DeviceId, 0, Psk, PlayToken, 1, false, true,-1); // //PlayEventListener listener = new PlayEventListener();//实现播放事件监听回调 2021-10-15 目前不能监听,监听了会空异常 // //mPlayWindow.WindowListener = listener;//实现播放事件监听回调 // mPlayWindow.PlayRtspReal(paramReal); // } // catch (System.Exception e) // { // string sss = e.Message; // } // } // /// // /// 停止预览(停止播放画面) // /// // public void Stop() // { // mPlayWindow.StopRtspReal(true);//关闭视频 // //mPlayWindow.WindowListener = null; // } // /// // /// 打开对讲 // /// // public void StartTalk() // { // UserInfo.Current.inVideo = true; // CloseAudio();// 关闭Audio // LCOpenSDK_Talk.Listener = new AudioTalkerListener();//设置对讲监听 // //2021-10-29 对讲请求类型,call呼叫,如果不传,默认为talk // string talkType = "talk"; // if (Type == 1)//0监控,1对讲 // { // talkType = "call"; // } // // 对讲参数 // LCOpenSDK_ParamTalk paramTalk = new LCOpenSDK_ParamTalk(AccessToken, DeviceId, -1, Psk, PlayToken, true, talkType); // LCOpenSDK_Talk.PlayTalk(paramTalk); // } // /// // /// 关闭对讲 // /// // public void StopTalk() // { // UserInfo.Current.inCall = DateTime.MinValue; // UserInfo.Current.inVideo = false; // LCOpenSDK_Talk.StopTalk(); // LCOpenSDK_Talk.Listener = null; // } // /// // /// 打开声音(预览的时候可以听到门口机传来的声音) // /// // /// // public bool OpenAudio() // { // return mPlayWindow.PlayAudio() == 0; // } // /// // /// 关闭声音(预览的时候关闭门口挤传来的声音,注意:打开对讲时需要先调用此方法关闭声音) // /// // /// // public bool CloseAudio() // { // return mPlayWindow.StopAudio() == 0; // } // /// // /// 开锁 // /// // public void Unlock() // { // // // Dictionary dic = new Dictionary(); // dic.Add("deviceId", this.DeviceId); // dic.Add("callId", this.CallId); // var requestJson = HttpUtil.GetSignRequestJson(dic); // var revertObj = HttpUtil.RequestHttpsPostFroHome("/home-wisdom/platform/imou/openDoorbell", requestJson); // if (revertObj.Code == StateCode.SUCCESS) // { // Toast.MakeText(this, Resources.GetString(Resource.String.unlock_success), ToastLength.Short).Show(); // } // else // { // Toast.MakeText(this, Resources.GetString(Resource.String.unlock_fail), ToastLength.Short).Show(); // } // } // ///// // ///// 发送广播,通知刷新图库的显示 // ///// // ///// // //void SendBroadcastScanFile(Context context, string path) // //{ // // // 发送广播,通知刷新图库的显示 // // Intent scanIntent = new Intent(Intent.ActionMediaScannerScanFile); // // scanIntent.SetData(Android.Net.Uri.FromFile(new File(path))); // // context.SendBroadcast(scanIntent); // //} // /// // /// 截图 // /// // /// // public void SnapShot(string path) // { // try // { // int code = mPlayWindow.SnapShot(path); // if (code == 0) // { // //2021-09-01 增加发送广播,通知刷新图库的显示 // HDLONUtils.SendBroadcastScanFile(this, path); // //Android.Provider.MediaStore.Images.Media.InsertImage(this.getContentResolver(), path, "ss", "ss"); // Toast.MakeText(this, Resources.GetString(Resource.String.screenshot_success), ToastLength.Short).Show(); // } // else // { // Toast.MakeText(this, Resources.GetString(Resource.String.screenshot_fail), ToastLength.Short).Show(); // } // } // catch (System.Exception e) // { // string error = e.Message; // } // //运行到这,photoFile已经存在,这里需要获得这个文件的uri // //* 分两种情况,android7.0以上和以下 // // 先存入临时目录,然后再移动到相册目录中 // //File photoFile = new File(path); // //Android.Net.Uri photoUri; // //if (Build.VERSION.SdkInt >= 24) // //if (Build.VERSION.PreviewSdkInt >= 24) // //{ // // /** // // * FileProvider.getUriForFile(),这个方法中需要填写三个参数, // // * 第一个Context, // // * 第二个S // // * tring 任意 // // * 第三个File // // */ // // photoUri = FileProvider.GetUriForFile(this, "HDL Video SnapShot", photoFile); // //} // //else // //{ // // photoUri = Android.Net.Uri.FromFile(photoFile); // //} // } // private ContentResolver getContentResolver() // { // throw new NotImplementedException(); // } // /// // /// 设置顶部状态栏背景透明 // /// // private void SetStatusBarColor() // { // Window.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds); // Window.SetStatusBarColor(Color.Transparent); // } // /// // /// 必要的一些权限 // /// // 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); // } // } // } // /// // /// 点击事件 // /// // /// // public void OnClick(View v) // { // if (v.Equals(ivBack)) // { // this.Finish(); // } // } // protected override void OnDestroy() // { // base.OnDestroy(); // Stop(); // mPlayWindow.UninitPlayWindow();//销毁底层资源 // } // /// // /// 对讲监听 // /// // class AudioTalkerListener : LCOpenSDK_TalkerListener // { // /// // /// 对讲结果回调 // /// // /// // /// // public override void OnTalkResult(string error, int type) // { // base.OnTalkResult(error, type); // try // { // System.Console.WriteLine("LC OnTalkResult error:" + error + " type:" + type); // 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); // } // } // /// // /// 播放、预览结果回调 // /// resultSource: 0--RTSP 1--HLS 5--DHHTTP 99--OPENAPI // /// // class PlayEventListener : LCOpenSDK_EventListener // { // public override void OnPlayerResult(int index, string code, int resultSource) // { // base.OnPlayerResult(index, code, resultSource); // System.Console.WriteLine("LC OnPlayerResult index:" + index + " code:" + code + " resultSource:"+ resultSource); // } // } // } //}