From efad979b6fae76fb37a4de7e94e6bac0a85cb72c Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期二, 30 十一月 2021 13:14:28 +0800 Subject: [PATCH] 2021-11-30 1.修复乐橙Android,没调用拒接接口问题。 --- HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs | 452 +++++++++++++++++++++++-------------------------------- 1 files changed, 190 insertions(+), 262 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs index 37fa78b..6c88a70 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs @@ -3,26 +3,38 @@ using Shared; using Shared.IO; using System.Net; +using HDL_ON.Entity; + namespace HDL_ON.UI.Music { public class MusicMain : FrameLayout { - //FrameLayout Frame = null; - //public MusicListViewMain() { - // Frame = this; - //} + /// <summary> + /// MusicMain瀵硅薄鏋勯�犲嚱鏁� + /// </summary> public MusicMain() { Tag = "MusicMain"; + //杩涙潵闊充箰鍒楄〃鐣岄潰鍏堢Щ闄や箣鍓嶇嚎绋�; + A31MusicModel.RemoveListThread(); } + /// <summary> + /// 閲嶅啓RemoveFromParent鏂规硶 + /// </summary> public override void RemoveFromParent() { base.RemoveFromParent(); clearA31Threads(); + A31MusicModel.ReadMusicStates();//杩涙潵娌℃湁闊充箰琚敹钘忚繃锛岄��鍑烘湁闊充箰琚敹钘忚繃 } + /// <summary> + /// 鍒涘缓绾跨▼鍒楄〃 + /// </summary> static List<System.Threading.Thread> threadLists = new List<System.Threading.Thread>(); - + /// <summary> + /// 绉婚櫎绾跨▼ + /// </summary> static void clearA31Threads() { var threads = threadLists.FindAll((obj) => { return obj.Name == "A31"; }); @@ -33,12 +45,13 @@ threadLists.Remove(thread); if (thread.IsAlive) { + ///寮哄埗绾跨▼鎶涘紓甯� thread.Abort(); } } catch (Exception e) { - System.Console.WriteLine(e.Message); + MainPage.Log("clearA31Threads error : " + e.Message); } } } @@ -46,12 +59,18 @@ /// 鏄剧ず鍔犺浇鐣岄潰 /// </summary> public static Loading loading = new Loading(); + /// <summary> + /// 瀹氫箟鍏ㄥ眬瀵硅薄 + /// </summary> VerticalRefreshLayout verticalRefresh; - + /// <summary> + /// 涓轰簡闊充箰鍒锋柊鐘舵�佸畾涔夊叏灞�瀵硅薄 + /// </summary> + MusicView musicView = new MusicView(); public void Show() { - #region 鐣岄潰甯冨眬 - this.BackgroundColor = Color.ViewColor; + #region 鐣岄潰甯冨眬 + this.BackgroundColor = MusicColor.ViewColor; var topView = new TopView(); this.AddChidren(topView.TopFLayoutView()); topView.topNameBtn.TextID = StringId.a31Music; @@ -70,184 +89,97 @@ verticalRefresh.BeginHeaderRefreshingAction += () => { - SeachMusic(false); - + SeachMusic(); }; this.AddChidren(loading); + SeachMusic(); - if (A31MusicModel.A31MusicModelList.Count == 0) + } + /// <summary> + /// 鍒锋柊鎾斁鍣ㄥ垪琛� + /// </summary> + void SeachMusic() + { + Application.RunOnMainThread(() => { - SeachMusic(true); - } - else - { - clearA31Threads(); - //verticalRefresh.RemoveAll(); - for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++) + verticalRefresh.RemoveAll(); + for (int i = 0; i < SendMethod.sendMethod.GetMusicList.Count; i++) { - var a31player = A31MusicModel.A31MusicModelList[i]; - ///杩欎釜鐘舵�佹槸涔嬪墠淇濆瓨鐨勶紝鍔犺浇瀹屾垚鍚庤鏍囪涓轰笉鍦ㄧ嚎锛屽悗闈㈠啀璇诲彇姝g‘鐨勭姸鎬� - if (!a31player.IsCanShow) + var playerFunction = SendMethod.sendMethod.GetMusicList[i]; + if (!playerFunction.online) { + //杩囨护鎺変笉鍦ㄧ嚎鐨勯煶涔愭挱鏀惧櫒 continue; } - if (A31MusicModel.A31MusicModelList.Count - 1 == i) - { - a31player.IsEnd = true; - } - else - { - a31player.IsEnd = false; - } - ///鍔犺浇鐣岄潰鏃堕粯璁や笉鍦ㄧ嚎 - ///杩欓噷鏍囪鏄负浜嗕笉璇诲彇涓嶅湪绾挎挱鏀惧櫒鐘舵�� - a31player.IsOnLine = false; - MusicListView(a31player); + MusicListView(playerFunction); } - ///璇诲彇姝g‘鐨勪俊鎭紝鍖呮嫭IP鍜岀鍙e強鍚嶇О - SendMethod.Seach((obj) => - { - try - { - if (obj == null) - { - ///杩欓噷瑕佽鍙栦富浠庡叧绯� - readServerOrClientMode(); - A31MusicModel.Save(); - return; - } - var a31MusicModel = A31MusicModel.A31MusicModelList.Find((music) => music.UniqueDeviceName == obj.UniqueDeviceName); - if (a31MusicModel != null) - { - a31MusicModel.IPAddress = obj.IPAddress; - a31MusicModel.Port = obj.Port; - a31MusicModel.Name = obj.Name; - a31MusicModel.IsCanShow = true; - a31MusicModel.IsOnLine = true; - } - } - catch (Exception e) { System.Console.WriteLine(e.Message); } - }); - } - } - void SeachMusic(bool Yes = false) - { - for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++) - { - var a31player = A31MusicModel.A31MusicModelList[i]; - a31player.IsCanShow = false; - a31player.IsOnLine = false; - } - if (Yes) - { - //涓轰簡绗竴娆¤繘鏉og涓�涓�; - loading.Start(); - } - SendMethod.Seach((obj) => - { - if (obj == null) - { - readServerOrClientMode(); - A31MusicModel.Save(); - if (!Yes) - { - ///绛夊緟璺戝畬鍦ㄥ叧闂� - verticalRefresh.EndHeaderRefreshing(); - } - Application.RunOnMainThread(() => - { - if (Yes) - { - //涓轰簡绗竴娆¤繘鏉og涓�涓�; - loading.Hide(); - } - verticalRefresh.RemoveAll(); - for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++) - { - var a31player = A31MusicModel.A31MusicModelList[i]; - //杩欎釜鐘舵�佹槸涔嬪墠淇濆瓨鐨勶紝鍔犺浇瀹屾垚鍚庤鏍囪涓轰笉鍦ㄧ嚎锛屽悗闈㈠啀璇诲彇姝g‘鐨勭姸鎬� - if (!a31player.IsCanShow) - { - continue; - } - if (A31MusicModel.A31MusicModelList.Count - 1 == i) - { - a31player.IsEnd = true; - } - else - { - a31player.IsEnd = false; - } - MusicListView(a31player); - } - - }); - return; - } - var a31MusicModel = A31MusicModel.A31MusicModelList.Find((music) => { return music.UniqueDeviceName == obj.UniqueDeviceName; }); - if (a31MusicModel == null) - { - //涓嶆槸鎴戜滑鏀寔鐨勫搧鐗屼笉鏀寔 - if (obj.Name != null) - { - A31MusicModel.A31MusicModelList.Add(obj); - } - } - else - { - a31MusicModel.IPAddress = obj.IPAddress; - a31MusicModel.Port = obj.Port; - a31MusicModel.Name = obj.Name; - a31MusicModel.IsCanShow = true; - a31MusicModel.IsOnLine = true; - } }); } /// <summary> /// 鏄剧ず闊充箰鍒楄〃鐨勬柟娉� /// </summary> - void MusicListView(A31MusicModel a31player) + void MusicListView(Function player) { - MusicView musicView = new MusicView(); musicView.View(verticalRefresh); - musicView.singerBtn.Text = a31player.A31PlayStatus.Artist; - musicView.songNameBtn.Text = a31player.A31PlayStatus.Title; - musicView.musicNameBtn.Text = new View.DialogView { }.NamePlayer(a31player); - musicView.regionBtn.TextID = StringId.region; - if (a31player.IsEnd) + musicView.singerBtn.Text = player.GetAttrState("song_name"); + musicView.songNameBtn.Text = player.GetAttrState("song_name"); + musicView.musicNameBtn.Text = player.name; + //if (player.IsEnd) + //{ + // musicView.muiscFl.Height = Application.GetRealHeight(12 + 139 + 12); + //} + + musicView.collectIconBtn.MouseUpEventHandler += (sender, e) => { - musicView.muiscFl.Height = Application.GetRealHeight(12 + 139 + 12); - } + musicView.collectIconBtn.IsSelected = !musicView.collectIconBtn.IsSelected; + if (musicView.collectIconBtn.IsSelected) + { + player.collect = true; + } + else + { + player.collect = false; + } + }; + EventHandler<MouseEventArgs> clickMergence = (sender, e) => { - if (a31player.ServerClientType == 0) - { - new View.DialogView { }.PlayMergence(); - } - else if (a31player.ServerClientType == 1) - { - new View.DialogView { }.DetachPlayMergence(a31player); - } + //if (player.ServerClientType == 0) + //{ + // new View.DialogView { }.PlayMergence(player); + //} + //else if (player.ServerClientType == 1) + //{ + // new View.DialogView { }.DetachPlayMergence(player); + //} }; musicView.mergeBjBtn.MouseUpEventHandler += clickMergence; musicView.mergeBtn.MouseUpEventHandler += clickMergence; musicView.mergeIconBtn.MouseUpEventHandler += clickMergence; - musicView.clickBtn.MouseUpEventHandler += (sender, e) => - { - A31MusicModel.Current = a31player;//褰撳墠鎾斁鍣� - var a31PlayMusicPage = new A31PlayMusicPage(); - MainPage.BasePageView.AddChidren(a31PlayMusicPage); - a31PlayMusicPage.Show(); - MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; - }; + EventHandler<MouseEventArgs> clickPlayView = (sender, e) => + { + var a31PlayMusicPage = new A31PlayMusicPage(); + MainPage.BasePageView.AddChidren(a31PlayMusicPage); + a31PlayMusicPage.Show(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + }; + musicView.musicIfonFl.MouseUpEventHandler += clickPlayView; + musicView.clickBtn.MouseUpEventHandler += clickPlayView;// + musicView.singerBtn.MouseUpEventHandler += clickPlayView; + musicView.songNameBtn.MouseUpEventHandler += clickPlayView;// + musicView.musicNameBtn.MouseUpEventHandler += clickPlayView; + musicView.regionBtn.MouseUpEventHandler += clickPlayView;// + ///涓婁竴鏇茬偣鍑讳簨浠� musicView.prevBtn.MouseDownEventHandler += (sender, e) => { musicView.prevBtn.IsSelected = true; - SendMethod.Previous(a31player); + Dictionary<string, string> dic = new Dictionary<string, string>(); + dic.Add("song_step", "up"); + SendMethod.sendMethod.SendControlCommand(player, dic); }; musicView.prevBtn.MouseUpEventHandler += (sender, e) => { @@ -256,154 +188,150 @@ ///鏆傚仠/鎾斁鐐瑰嚮浜嬩欢 musicView.playBtn.MouseDownEventHandler += (sender, e) => { + string status = "off"; if (musicView.playBtn.IsSelected) { musicView.playBtn.IsSelected = false; - SendMethod.Pause(a31player); - a31player.A31PlayStatus.status = "pause"; + status = "off"; } else { musicView.playBtn.IsSelected = true; - SendMethod.Play(a31player); - a31player.A31PlayStatus.status = "play"; + status = "on"; } + Dictionary<string, string> dic = new Dictionary<string, string>(); + dic.Add("on_off", status); + SendMethod.sendMethod.SendControlCommand(player, dic); }; ///涓嬩竴鏇茬偣鍑讳簨浠� musicView.nextBtn.MouseDownEventHandler += (sender, e) => { musicView.nextBtn.IsSelected = true; - SendMethod.Next(a31player); + Dictionary<string, string> dic = new Dictionary<string, string>(); + dic.Add("song_step", "down"); + SendMethod.sendMethod.SendControlCommand(player, dic); }; musicView.nextBtn.MouseUpEventHandler += (sender, e) => { musicView.nextBtn.IsSelected = false; }; - musicView.collectIconBtn.MouseUpEventHandler = (sender, e) => + var musicThread = new System.Threading.Thread(() => { - musicView.collectIconBtn.IsSelected = !musicView.collectIconBtn.IsSelected; - a31player.collection = musicView.collectIconBtn.IsSelected ? true : false; - }; - - System.Threading.Tasks.Task.Run(() => - { - System.Threading.Thread.CurrentThread.Name = "A31"; - threadLists.Add(System.Threading.Thread.CurrentThread); while (true) { System.Threading.Thread.Sleep(1000); - if (!a31player.IsOnLine) + if (!player.online) { continue; } - SendMethod.ReadStatus(a31player); + //SendMethod.ReadStatus(player); + SendMethod.sendMethod.RefreshDeviceStatus(player,new List<string> { player.deviceId }); + Application.RunOnMainThread(() => { - musicView.singerBtn.Text = a31player.A31PlayStatus.Artist; - musicView.songNameBtn.Text = a31player.A31PlayStatus.Title; - musicView.musicNameBtn.Text = new View.DialogView { }.NamePlayer(a31player); - if (a31player.A31PlayStatus.status == "play") - { - musicView.playBtn.IsSelected = true; - } - else - { - musicView.playBtn.IsSelected = false; - } + //musicView.singerBtn.Text = player.A31PlayStatus.Artist; + //musicView.songNameBtn.Text = player.A31PlayStatus.Title; + //musicView.musicNameBtn.Text = new View.DialogView { }.NamePlayer(player); + //if (player.A31PlayStatus.status == "play") + //{ + // musicView.playBtn.IsSelected = true; + //} + //else + //{ + // musicView.playBtn.IsSelected = false; + //} + //musicView.regionBtn.Text = player.GetRoomListName(); + //if (player.ServerClientType == 1) + //{ + // if (player.MainPlayCollection) + // { + // musicView.collectIconBtn.IsSelected = true; + // } + // else + // { + // musicView.collectIconBtn.IsSelected = false; + // } + //} + //else + //{ + // if (player.collect) + // { + // musicView.collectIconBtn.IsSelected = true; + // } + // else + // { + // musicView.collectIconBtn.IsSelected = false; + // } + //} }); } - }); - + }) + { IsBackground = true, Name = "A31" }; + musicThread.Start(); + threadLists.Add(musicThread); } /// <summary> - /// 璇诲彇涓讳粠鍏崇郴 + ///鎸囧畾鍒锋柊鐣岄潰 /// </summary> - void readServerOrClientMode() + /// <param name="strView">鍒ゆ柇瀛楃</param> + public void RefreshView(string strView) { - try + Application.RunOnMainThread(() => { - for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++) + try { - var a31player = A31MusicModel.A31MusicModelList[i]; - if (!a31player.IsOnLine) + + for (int i = MainPage.BasePageView.ChildrenCount - 1; 0 <= i; i--) { - continue; - } - try - { - a31player.ServerClientType = 0; - var result = SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:getSlaveList"); - if (result == null && result == "Failed") + var view = MainPage.BasePageView.GetChildren(i); + if (strView == view.Tag.ToString()) { - result = SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:getSlaveList"); - } - if (result != null && result != "Failed") - { - a31player.Slave = Newtonsoft.Json.JsonConvert.DeserializeObject<Slaves>(result); - } - } - catch (Exception e) - { - var d = e.Message; - } - } - - //鍒嗘瀽涓讳粠鍏崇郴 - for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++) - { - var a31player = A31MusicModel.A31MusicModelList[i]; - if (!a31player.IsOnLine) - { - continue; - } - try - { - if (a31player.Slave != null && "0" != a31player.Slave.slaves) - { - a31player.ServerClientType = 1;//涓荤殑 - string str = a31player.Name; - for (int j = 0; j < a31player.Slave.slave_list.Count; j++) + if (view.GetType() == typeof(MusicMain)) { - var slave = a31player.Slave.slave_list[j]; - str = str + "+" + slave.name; - var tempA31Player = A31MusicModel.A31MusicModelList.Find((obj) => slave.uuid.Replace("uuid:", "") == obj.UniqueDeviceName); - if (tempA31Player == null) - { - A31MusicModel.A31MusicModelList.Add(new A31MusicModel - { - ServerClientType = -1,//浠庣殑 - IPAddress = slave.ip, - MainPlayIP = a31player.IPAddress, - UniqueDeviceName = slave.uuid.Replace("uuid:", ""), - Name = slave.name, - IsCanShow = false, - IsOnLine = false,//true浣滅敤涓轰簡璇诲彇浠庢挱鏀惧櫒鐨勯煶閲� - }); - } - //濡傛灉鎵惧埌灏辨洿鏂颁负浠庣殑 - else - { - tempA31Player.ServerClientType = -1;//浠庣殑 - tempA31Player.IPAddress = slave.ip; - tempA31Player.MainPlayIP = a31player.IPAddress; - tempA31Player.Name = slave.name; - tempA31Player.UniqueDeviceName = slave.uuid.Replace("uuid:", ""); - tempA31Player.IsCanShow = false; - tempA31Player.IsOnLine = false;//true浣滅敤涓轰簡璇诲彇浠庢挱鏀惧櫒鐨勯煶閲� - } + //musicView.singerBtn.Text = player.A31PlayStatus.Artist; + //musicView.songNameBtn.Text = player.A31PlayStatus.Title; + //musicView.musicNameBtn.Text = new View.DialogView { }.NamePlayer(player); + //if (player.A31PlayStatus.status == "play") + //{ + // musicView.playBtn.IsSelected = true; + //} + //else + //{ + // musicView.playBtn.IsSelected = false; + //} + //musicView.regionBtn.Text = player.GetRoomListName(); + //if (player.ServerClientType == 1) + //{ + // if (player.MainPlayCollection) + // { + // musicView.collectIconBtn.IsSelected = true; + // } + // else + // { + // musicView.collectIconBtn.IsSelected = false; + // } + //} + //else + //{ + // if (player.collect) + // { + // musicView.collectIconBtn.IsSelected = true; + // } + // else + // { + // musicView.collectIconBtn.IsSelected = false; + // } + //} } - a31player.MainPlayName = str; } - } - catch (Exception e) - { - var ss = e.Message; + } } - } - catch { } + catch { } + }); } } -} \ No newline at end of file + +} -- Gitblit v1.8.0