//using System; //using System.Collections.Generic; //using System.Linq; //using System.Text; //using System.Threading; //using Android.App; //using Android.Content; //using Android.Icu.Text; //using Android.OS; //using Android.Runtime; //using Android.Util; //using Android.Views; //using Android.Widget; //using Com.ETouchSky; //using Com.Tool; //using HDL_ON.Common; //using HDL_ON.DAL.Server; //using HDL_ON_Android.FengLinVideo.Interface; //using Java.Util; //using Org.Json; //namespace HDL_ON_Android.FengLinVideo.Form //{ // public class ReverseCallFragment : Fragment, View.IOnClickListener, VideoState // { // private VideoPhone mPhone; // private string param = ""; // private bool isCalling = false; // private View mView; // private ImageView screenshotImg;// 截图 // private ImageView unlockImg;// 开锁 // private LinearLayout answerLayout; // 接听 // private ImageView hangupImg; // 接听 // private ImageView answerImg;// 挂断 // private TextView hangupText; // private TextView tvTip; // private System.Threading.Timer timer = null; // private int Time = 0; // public ReverseCallFragment(VideoPhone _phone, string _param) // { // this.mPhone = _phone; // this.param = _param; // } // public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) // { // mView = inflater.Inflate(Resource.Layout.fragment_call, container, false); // IniView(); // ReverseCall(param); // return mView; // } // private void IniView() // { // screenshotImg = (ImageView)mView.FindViewById(Resource.Id.callScreenshotImg);// // unlockImg = (ImageView)mView.FindViewById(Resource.Id.callUnlockImg);// // tvTip = (TextView)mView.FindViewById(Resource.Id.callTipText); // answerLayout = (LinearLayout)mView.FindViewById(Resource.Id.callAnswerLayout); // hangupImg = (ImageView)mView.FindViewById(Resource.Id.callHangupImg); // answerImg = (ImageView)mView.FindViewById(Resource.Id.callAnswerImg); // hangupText = (TextView)mView.FindViewById(Resource.Id.callHangupText); // screenshotImg.SetOnClickListener(this); // unlockImg.SetOnClickListener(this); // hangupImg.SetOnClickListener(this); // answerImg.SetOnClickListener(this); // hangupText.SetText(GetString(Resource.String.video_not_answer), null); // tvTip.SetText(GetString(Resource.String.calling), null); // } // /// // /// 一般是推送过的来电信息时调用此接口打开视频窗口。然后可调用mPhone.acceptRing(param);接收来电信息 // /// // /// // private void ReverseCall(string param) // { // if (mPhone != null) // { // mPhone.ReverseCall(param); // } // } // /// // /// 开锁 // /// // private void Unlock() // { // //开锁,当收到来电信息时可进行开锁操作 // if (mPhone != null) // { // try // { // unlockImg.Selected = true; // JSONObject ht = new JSONObject(); // ht.Put("command", "open");//固定参数 // ht.Put("room_id", 123); //动态参数 ,传递开门的房间号。这个开门口记录就能记录谁开的门 // ht.Put("devType", 7); //固定参数 // mPhone.SendCustomData(ht.ToString()); // } // catch (Exception e) // { // string erro = e.Message; // } // } // } // public static Thread unlockThread = null;//公开出来,关闭activity的时候要结束这个线程,不然会引起崩溃 // /// // /// 更新开锁按钮状态,开锁成功,15秒内不给再点击按钮 // /// // private void UpdataUnlockState() // { // try // { // if (unlockImg == null) return; // unlockImg.Enabled = false; // unlockThread = new Thread(() => // { // try // { // Thread.Sleep(15 * 1000); // Activity.RunOnUiThread(() => // { // try { // if (unlockImg != null) // unlockImg.Enabled = true; // } // catch { } // }); // } // catch { } // });//.Start(); // unlockThread.Start(); // PostUnlock(); // } // catch { } // } // private string GetTime(int time) // { // int m = time / 60; // int s = time % 60; // return UnitFormat(m) + ":" + UnitFormat(s); // } // private static string UnitFormat(int i) // { // string retStr = null; // if (i >= 0 && i < 10) // retStr = "0" + i; // else // retStr = "" + i; // return retStr; // } // /// // /// 通话记录计时器,从拉流成功开始计算时间 // /// // private void TimeStarts() // { // try // { // if (timer != null) // timer.Dispose(); // TimerCallback timerCallback = new TimerCallback(Tick); // timer = new System.Threading.Timer(timerCallback, null, 0, 1000); // } // catch (Exception) { } // } // private void TimeEnd() // { // Time = 0; // if (timer != null) // { // timer.Dispose(); // timer = null; // } // } // public void Tick(Object state) // { // try // { // Activity.RunOnUiThread(() => // { // try // { // Time++; // if (tvTip != null) // tvTip.SetText(GetTime(Time), null); // } // catch { } // }); // } // catch { } // } // /// // /// 通话消息回调方法 // /// // /// // public void OnPhoneEvent(string msg) // { // try // { // // // TextProtocol tp = new TextProtocol(); // tp.Parse(msg); // string event1 = tp.GetString("event"); // switch (event1) // { // case "EVT_RECV_CUSTOM_DATA":// 开锁成功 // string data = tp.GetString("data"); // UpdataUnlockState(); // break; // case "EVT_StartStream":// 拉流成功,开始记录通话时间 // isCalling = true; // TimeStarts(); // hangupText.SetText(GetString(Resource.String.video_hang_up), null); // break; // case "EVT_StopStream": // if (isCalling == false) // PostReject();// 拒接 // else // PostHangup();// 正常挂断 // break; // case "EVT_SnapAck": // int error = tp.GetInt("error"); // string filePath = tp.GetString("filePath"); // if (error == 0) // { // screenshotImg.Selected = true; // PostScreenshot(filePath); // } // else // { // screenshotImg.Selected = false; // } // break; // } // } // catch (Exception e) // { // string error = e.Message; // } // } // public void OnClick(View v) // { // if (v.Equals(answerImg)) // { // //接收来电 // if (mPhone != null) // { // if (mPhone.IsRinging) // { // string UserData = "user text"; // //注意:RequestAudio 请求对方音频,RequestVideo请求对方视频 SendAudio发送本地音频 SendVideo 发送本地视频 一般门口不接收到视频,所以最好设置0,减少流量消耗 // string param = string.Format("RequestAudio=1\r\n" + "RequestVideo=1\r\n" + "SendAudio=1\r\n" + "SendVideo=1r\n" + "UserData=%s\r\n", UserData); // mPhone.AcceptRing(param); // answerLayout.Visibility = ViewStates.Gone; // PostAnswer(); // } // } // } // else if (v.Equals(hangupImg)) // { // if (mPhone != null) // { // mPhone.HangUp(); // TimeEnd(); // } // Activity.Finish(); // } // else if (v.Equals(screenshotImg)) // { // //有视频过来可调用此接口进行拍照 // if (mPhone != null) // { // // 内部储存/DCIM/Camera/.....jpg // screenshotImg.Selected = true; // SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); // string time = format.Format(new Date(SystemClock.CurrentThreadTimeMillis())); // string ss = Android.OS.Environment.ExternalStorageDirectory.Path + "/DCIM/Camera"; // string path = ss + "/" + time + ".jpg"; // mPhone.Snap(path); // //2021-09-01 增加发送广播,通知刷新图库的显示 // HDLONUtils.SendBroadcastScanFile(this.Context, path); // } // } // else if (v.Equals(unlockImg)) // { // Unlock(); // } // } // /// // /// post 截图 // /// // /// 截图保留的路径 // private void PostScreenshot(string path) // { // new Thread(() => // { // try // { // string[] str = path.Split("/"); // string img_name = str.GetValue(str.Length - 1).ToString().Replace(".jpg", ""); // byte[] images = FileUtlis.Files.ReadFileForPath(path); // Dictionary d = new Dictionary(); // d.Add("callId", VideoActivity.CallId); // d.Add("images", images); // d.Add("imagesName", "_Android.jpg"); // string jsonString = HttpUtil.GetSignRequestJson(d); // string url = "/home-wisdom/app/fl/vi/screenshot"; // ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString); // Log.Info("FengLinVideo", "Post Screenshot Response code=" + response.Code); // } // catch { } // }).Start(); // } // /// // /// post 接听电话记录 // /// // private void PostAnswer() // { // new Thread(() => // { // try // { // Dictionary d = new Dictionary(); // d.Add("uuid", VideoActivity.UUId);//丰林请求的唯一id string // d.Add("cmtID", VideoActivity.CmtID);//丰林社区id string // d.Add("roomno", VideoActivity.Roomno);//丰林房间号 string // d.Add("unitno", VideoActivity.Unitno);//丰林楼栋号 string // d.Add("HomeID", VideoActivity.HomeID);//丰林住宅id string // d.Add("callId", VideoActivity.CallId);//呼叫记录id int // string jsonString = HttpUtil.GetSignRequestJson(d); // string url = "/home-wisdom/app/fl/vi/answer"; // ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString); // Log.Info("FengLinVideo", "Post Answer Response code=" + response.Code); // } // catch { } // }).Start(); // } // /// // /// post 挂断电话记录 // /// // private void PostHangup() // { // new Thread(() => // { // try // { // Dictionary d = new Dictionary(); // d.Add("callId", VideoActivity.CallId);//呼叫记录id int // d.Add("callDuration", Time);//通话时长(秒) int // string jsonString = HttpUtil.GetSignRequestJson(d); // string url = "/home-wisdom/app/fl/vi/hang-up"; // ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString); // Log.Info("FengLinVideo", "Post Hangup Response code=" + response.Code); // } // catch { } // }).Start(); // } // /// // /// post 拒接记录 // /// // private void PostReject() // { // new Thread(() => // { // try // { // Dictionary d = new Dictionary(); // d.Add("callId", VideoActivity.CallId);//呼叫记录id int // string jsonString = HttpUtil.GetSignRequestJson(d); // string url = "/home-wisdom/app/fl/vi/reject"; // ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString); // Log.Info("FengLinVideo", "Post Reject Response code=" + response.Code); // } // catch { } // }).Start(); // } // /// // /// post 开锁记录 // /// // private void PostUnlock() // { // new Thread(() => // { // try // { // Dictionary d = new Dictionary(); // d.Add("callId", VideoActivity.CallId);//呼叫记录id int // string jsonString = HttpUtil.GetSignRequestJson(d); // string url = "/home-wisdom/app/fl/vi/unlock"; // ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString); // Log.Info("FengLinVideo", "Post Reject Response code=" + response.Code); // } // catch { } // }).Start(); // } // } //}