From 6d73bf6e816570291865674bef8bce8972e4de3f Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期三, 01 十二月 2021 16:32:57 +0800 Subject: [PATCH] 2021-12-01-01 --- HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs | 427 ++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 288 insertions(+), 139 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs index 6c88a70..01c7106 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs @@ -3,8 +3,6 @@ using Shared; using Shared.IO; using System.Net; -using HDL_ON.Entity; - namespace HDL_ON.UI.Music { public class MusicMain : FrameLayout @@ -58,22 +56,19 @@ /// <summary> /// 鏄剧ず鍔犺浇鐣岄潰 /// </summary> - public static Loading loading = new Loading(); + public static Loading loading = new Loading(); /// <summary> /// 瀹氫箟鍏ㄥ眬瀵硅薄 /// </summary> VerticalRefreshLayout verticalRefresh; - /// <summary> - /// 涓轰簡闊充箰鍒锋柊鐘舵�佸畾涔夊叏灞�瀵硅薄 - /// </summary> - MusicView musicView = new MusicView(); public void Show() { + #region 鐣岄潰甯冨眬 this.BackgroundColor = MusicColor.ViewColor; var topView = new TopView(); this.AddChidren(topView.TopFLayoutView()); - topView.topNameBtn.TextID = StringId.a31Music; + topView.topNameBtn.TextID =StringId.a31Music; topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { RemoveFromParent(); @@ -89,71 +84,200 @@ verticalRefresh.BeginHeaderRefreshingAction += () => { - SeachMusic(); + SeachMusic(false); + }; this.AddChidren(loading); - SeachMusic(); + if (A31MusicModel.A31MusicModelList.Count == 0) + { + SeachMusic(true); + } + else + { + clearA31Threads(); + //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; + } + ///鍔犺浇鐣岄潰鏃堕粯璁や笉鍦ㄧ嚎 + ///杩欓噷鏍囪鏄负浜嗕笉璇诲彇涓嶅湪绾挎挱鏀惧櫒鐘舵�� + a31player.IsOnLine = false; + MusicListView(a31player); + } + ///璇诲彇姝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) { MainPage.Log(e.Message); } + }); + } } /// <summary> /// 鍒锋柊鎾斁鍣ㄥ垪琛� /// </summary> - void SeachMusic() + /// <param name="Yes">鏄惁鏄剧ず鍒锋柊鍥炬爣</param> + void SeachMusic(bool Yes = false) { - Application.RunOnMainThread(() => + 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]; + a31player.IsCanShow = false; + a31player.IsOnLine = false; + } + if (Yes) + { + //涓轰簡绗竴娆¤繘鏉og涓�涓�; + loading.Start(); + } + SendMethod.Seach((obj) => + { + if (obj == null) { - var playerFunction = SendMethod.sendMethod.GetMusicList[i]; - if (!playerFunction.online) + readServerOrClientMode(); + A31MusicModel.Save(); + if (!Yes) { - //杩囨护鎺変笉鍦ㄧ嚎鐨勯煶涔愭挱鏀惧櫒 - continue; + ///绛夊緟璺戝畬鍦ㄥ叧闂� + verticalRefresh.EndHeaderRefreshing(); } - MusicListView(playerFunction); - } + 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); + } + //A31MusicModel.ReadMusicStates(); + }); + return; + } + var a31MusicModel = A31MusicModel.A31MusicModelList.Find((music) => { return music.UniqueDeviceName == obj.UniqueDeviceName; }); + if (a31MusicModel == null) + { + //涓嶆槸鎴戜滑鏀寔鐨勫搧鐗屼笉鏀寔 + if (obj.Name != null) + { + obj.sid = "030101123456780909020123AABB" + obj.UniqueDeviceName; + 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(Function player) + void MusicListView(A31MusicModel a31player) { + MusicView musicView = new MusicView(); musicView.View(verticalRefresh); - 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.singerBtn.Text = a31player.A31PlayStatus.Artist; + musicView.songNameBtn.Text = a31player.A31PlayStatus.Title; + musicView.musicNameBtn.Text = new View.DialogView { }.NamePlayer(a31player); + if (a31player.IsEnd) + { + musicView.muiscFl.Height = Application.GetRealHeight(12 + 139 + 12); + } musicView.collectIconBtn.MouseUpEventHandler += (sender, e) => { musicView.collectIconBtn.IsSelected = !musicView.collectIconBtn.IsSelected; - if (musicView.collectIconBtn.IsSelected) + if (a31player.ServerClientType == 1) { - player.collect = true; + if (musicView.collectIconBtn.IsSelected) + { + a31player.MainPlayCollection = true; + } + else + { + a31player.MainPlayCollection = false; + } } else { - player.collect = false; + if (musicView.collectIconBtn.IsSelected) + { + a31player.collect = true; + } + else + { + a31player.collect = false; + } } + A31MusicModel.Save(); }; EventHandler<MouseEventArgs> clickMergence = (sender, e) => { - //if (player.ServerClientType == 0) - //{ - // new View.DialogView { }.PlayMergence(player); - //} - //else if (player.ServerClientType == 1) - //{ - // new View.DialogView { }.DetachPlayMergence(player); - //} + if (a31player.ServerClientType == 0) + { + new View.DialogView { }.PlayMergence(a31player); + } + else if (a31player.ServerClientType == 1) + { + new View.DialogView { }.DetachPlayMergence(a31player); + + } }; musicView.mergeBjBtn.MouseUpEventHandler += clickMergence; musicView.mergeBtn.MouseUpEventHandler += clickMergence; @@ -161,6 +285,7 @@ EventHandler<MouseEventArgs> clickPlayView = (sender, e) => { + A31MusicModel.Current = a31player;//褰撳墠鎾斁鍣� var a31PlayMusicPage = new A31PlayMusicPage(); MainPage.BasePageView.AddChidren(a31PlayMusicPage); a31PlayMusicPage.Show(); @@ -177,9 +302,7 @@ musicView.prevBtn.MouseDownEventHandler += (sender, e) => { musicView.prevBtn.IsSelected = true; - Dictionary<string, string> dic = new Dictionary<string, string>(); - dic.Add("song_step", "up"); - SendMethod.sendMethod.SendControlCommand(player, dic); + SendMethod.Previous(a31player); }; musicView.prevBtn.MouseUpEventHandler += (sender, e) => { @@ -188,28 +311,24 @@ ///鏆傚仠/鎾斁鐐瑰嚮浜嬩欢 musicView.playBtn.MouseDownEventHandler += (sender, e) => { - string status = "off"; if (musicView.playBtn.IsSelected) { musicView.playBtn.IsSelected = false; - status = "off"; + SendMethod.Pause(a31player); + a31player.A31PlayStatus.status = "pause"; } else { musicView.playBtn.IsSelected = true; - status = "on"; + SendMethod.Play(a31player); + a31player.A31PlayStatus.status = "play"; } - 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; - Dictionary<string, string> dic = new Dictionary<string, string>(); - dic.Add("song_step", "down"); - SendMethod.sendMethod.SendControlCommand(player, dic); + SendMethod.Next(a31player); }; musicView.nextBtn.MouseUpEventHandler += (sender, e) => { @@ -221,49 +340,47 @@ while (true) { System.Threading.Thread.Sleep(1000); - if (!player.online) + if (!a31player.IsOnLine) { continue; } - //SendMethod.ReadStatus(player); - SendMethod.sendMethod.RefreshDeviceStatus(player,new List<string> { player.deviceId }); - + SendMethod.ReadStatus(a31player); Application.RunOnMainThread(() => { - //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; - // } - //} + 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.regionBtn.Text = a31player.GetRoomListName(); + if (a31player.ServerClientType == 1) + { + if (a31player.MainPlayCollection) + { + musicView.collectIconBtn.IsSelected = true; + } + else + { + musicView.collectIconBtn.IsSelected = false; + } + } + else + { + if (a31player.collect) + { + musicView.collectIconBtn.IsSelected = true; + } + else + { + musicView.collectIconBtn.IsSelected = false; + } + } }); } }) @@ -271,67 +388,99 @@ musicThread.Start(); threadLists.Add(musicThread); } - /// <summary> - ///鎸囧畾鍒锋柊鐣岄潰 + /// 璇诲彇涓讳粠鍏崇郴 /// </summary> - /// <param name="strView">鍒ゆ柇瀛楃</param> - public void RefreshView(string strView) + void readServerOrClientMode() { - Application.RunOnMainThread(() => + try { - try + for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++) { - - for (int i = MainPage.BasePageView.ChildrenCount - 1; 0 <= i; i--) + var a31player = A31MusicModel.A31MusicModelList[i]; + if (!a31player.IsOnLine) { - var view = MainPage.BasePageView.GetChildren(i); - if (strView == view.Tag.ToString()) + continue; + } + try + { + a31player.ServerClientType = 0; + var result = SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:getSlaveList"); + if (result == null && result == "Failed") { - if (view.GetType() == typeof(MusicMain)) - { - //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; - // } - //} - } + 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; } } - catch { } - }); + + //鍒嗘瀽涓讳粠鍏崇郴 + 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++) + { + + 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 + { + sid = "030101123456780909020123AABB" + slave.uuid.Replace("uuid:", ""), + 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浣滅敤涓轰簡璇诲彇浠庢挱鏀惧櫒鐨勯煶閲� + + } + } + a31player.MainPlayName = str; + } + } + catch (Exception e) + { + var ss = e.Message; + } + } + + } + catch { } } + } } -- Gitblit v1.8.0