From 7167334c0e89dd84827d59e726123d14776e3a09 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期二, 16 六月 2020 11:14:13 +0800 Subject: [PATCH] 2020-06-16-1 --- HDL_ON/UI/Music/View/DialogView.cs | 787 ++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 599 insertions(+), 188 deletions(-) diff --git a/HDL_ON/UI/Music/View/DialogView.cs b/HDL_ON/UI/Music/View/DialogView.cs index ed6f4de..b136a9a 100644 --- a/HDL_ON/UI/Music/View/DialogView.cs +++ b/HDL_ON/UI/Music/View/DialogView.cs @@ -114,7 +114,6 @@ FileView(dialog, verticalScrolViewLayout, musicInfo); } - void FileView(Dialog dialog, VerticalScrolViewLayout verticalScrolViewLayout, MusicInfo musicInfo) { verticalScrolViewLayout.RemoveAll(); @@ -343,10 +342,9 @@ TextColor = Color.TextColor, TextSize = TextSize.Text14, TextAlignment = TextAlignment.CenterLeft, - Text = player.Name, + Text = NamePlayer(player), }; PlayRow.AddChidren(PlayNameBtn); - //閫変腑鍥炬爣鎺т欢 Button selectedIconBtn = new Button @@ -404,7 +402,21 @@ if (playList1.Count <= 1) { - new PublicAssmebly().TipMsgAutoClose("鑷冲皯閫変腑涓や釜浠ヤ笂鎾斁鍣�", false); + new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.selectAtLeastTwoPlayers), false); + return; + } + int number = 0; + foreach (var musin in playList1) + { + if (musin.ServerClientType == 1) + { + number++; + } + } + if (number >= 2) + { + new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.cannotSelectTwoOrMoreMainPlayersToCombine), false); + //濡傛灉閮芥槸涓绘挱鏀炬垜灏变笉鑳界粍鍚�; return; } ///鏌ヨ鏄惁宸茬粡瀛樺湪涓绘挱鏀�; @@ -416,7 +428,7 @@ for (int i = 0; i < playList1.Count; i++) { var musics = playList1[i]; - if (musics.A31PlayStatus.playSource == "play") + if (musics.A31PlayStatus.status == "play") { playList2.Add(musics); } @@ -432,7 +444,7 @@ //鍙湁涓�涓挱鏀惧櫒鍦ㄦ挱鏀�,榛樿涓轰富鎾彂鍣�; dialog.Close(); var player = playList2[0]; - Threading(player, playList1); + MergeThreading(player, playList1); } else { @@ -441,12 +453,13 @@ } else { - Threading(host_Music_If, playList1); + dialog.Close(); + MergeThreading(host_Music_If, playList1); } }; } /// <summary> - /// 閫変腑涓绘挱鏀惧櫒鐨勭晫闈� + /// 閫変腑鏌愪釜闊充箰涓轰富鎾斁鍣ㄧ殑鐣岄潰 /// </summary> /// <param name="musicList1">鏄剧ず灏嗚缁勫悎鐨勬挱鏀惧櫒鍒楄〃</param> /// /// <param name="musicList2">鏄剧ず鍦ㄦ挱鏀鹃煶涔愭挱鏀惧櫒鍒楄〃</param> @@ -548,19 +561,66 @@ }; verticalScrolViewLayout.AddChidren(addFlieRow); - //鎾斁鍣ㄥ悕绉版帶浠� - Button PlayNameBtn = new Button + if (player.A31PlayStatus.status == "play") { - X = Application.GetRealWidth(20), - Y = Application.GetRealHeight(15), - Width = Application.GetRealWidth(150), - Height = Application.GetRealHeight(20), - TextColor = Color.TextColor, - TextSize = TextSize.Text14, - TextAlignment = TextAlignment.CenterLeft, - Text = player.Name, - }; - addFlieRow.AddChidren(PlayNameBtn); + Button songNameBtn = new Button + { + X = Application.GetRealWidth(20), + Y = Application.GetRealHeight(15), + Width = Application.GetRealWidth(150), + Height = Application.GetRealHeight(20), + TextColor = Color.TextColor, + TextSize = TextSize.Text14, + TextAlignment = TextAlignment.CenterLeft, + Text = player.A31PlayStatus.Title, + }; + addFlieRow.AddChidren(songNameBtn); + + var wText = songNameBtn.GetTextWidth();//鑾峰彇鏂囨湰瀹藉害 + if (wText > 280) + { + songNameBtn.Width = Application.GetRealWidth(280); + } + else + { + songNameBtn.Width = wText + 5; + } + //姝屾墜鎺т欢 + Button singerBtn = new Button + { + X = songNameBtn.Right, + Y = Application.GetRealHeight(15), + Width = Application.GetRealWidth(280 - songNameBtn.Width), + Height = Application.GetRealHeight(20), + TextColor = Color.MusicNoTxetColor, + TextSize = TextSize.Text12, + TextAlignment = TextAlignment.CenterLeft, + Text = "-" + player.A31PlayStatus.Artist.Trim(), + }; + addFlieRow.AddChidren(singerBtn); + if (wText > 280) + { + ///姝屽悕闀垮害灏忎簬250鎵嶅彲浠ユ樉绀烘瓕鎵嬪嚭鏉� + singerBtn.Width = Application.GetRealWidth(0); + } + } + else + { + //鎾斁鍣ㄥ悕绉版帶浠� + Button PlayNameBtn = new Button + { + X = Application.GetRealWidth(20), + Y = Application.GetRealHeight(15), + Width = Application.GetRealWidth(150), + Height = Application.GetRealHeight(20), + TextColor = Color.TextColor, + TextSize = TextSize.Text14, + TextAlignment = TextAlignment.CenterLeft, + Text = NamePlayer(player), + }; + addFlieRow.AddChidren(PlayNameBtn); + + } //閫変腑鍥炬爣鎺т欢 Button selectedIconBtn = new Button @@ -603,26 +663,222 @@ { if (selectedBtn.Name.ToString() == "No") { - new PublicAssmebly().TipMsgAutoClose("杩樻病閫変腑鎾斁鍣�", false); + new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.noSelectedPlay), false); return; } dialogF.Close(); dialog.Close(); - + var serverMusic = selectedBtn.Tag as A31MusicModel; - Threading(serverMusic, musicList1); + MergeThreading(serverMusic, musicList1); }; } + /// <summary> + /// 閫変腑瑙i櫎缁勫悎鐨勬挱鏀惧櫒鐨勭晫闈� + /// </summary> + public void DetachPlayMergence(A31MusicModel a31player) + { + #region + //涓绘帶浠� + Dialog dialog = new Dialog() + { + BackgroundColor = Color.PopupBackgroundColor, + }; + dialog.Show(); + //鐖舵帶浠� + FrameLayout frame = new FrameLayout { }; + dialog.AddChidren(frame); + frame.MouseUpEventHandler += (sen, e) => + { + dialog.Close(); + }; + //鐧借壊蹇埗鎺т欢 + FrameLayout dialogFra = new FrameLayout() + { + X = Application.GetRealWidth(16), + Y = Application.GetRealHeight(397), + Width = Application.GetRealWidth(344), + Height = Application.GetRealHeight(250), + BackgroundColor = Color.WhiteColor, + Radius = (uint)Application.GetRealHeight(12), + }; + frame.AddChidren(dialogFra); + //鏄剧ず澶撮儴淇℃伅鐖舵帶浠� + FrameLayout topFra = new FrameLayout() + { + Width = Application.GetRealWidth(344), + Height = Application.GetRealHeight(50), + }; + dialogFra.AddChidren(topFra); + //鍙栨秷鎺т欢 + Button cancelnBtn = new Button + { + X = Application.GetRealWidth(20), + Y = Application.GetRealHeight(15), + Width = Application.GetRealWidth(60), + Height = Application.GetRealHeight(20), + TextID = StringId.cancelMusic, + TextAlignment = TextAlignment.CenterLeft, + TextColor = Color.MusicNoTxetColor, + TextSize = TextSize.Text14, + }; + topFra.AddChidren(cancelnBtn); + cancelnBtn.MouseUpEventHandler += (sen, e) => + { + dialog.Close(); + }; + //鏍囬鎺т欢 + Button txetBtn = new Button + { + X = cancelnBtn.Right + Application.GetRealWidth(20), + Y = Application.GetRealHeight(14), + Width = Application.GetRealWidth(152), + Height = Application.GetRealHeight(22), + TextColor = Color.TextColor, + TextSize = TextSize.Text16, + TextAlignment = TextAlignment.Center, + TextID = StringId.checkTheReleasePlayer, + //Text = "閫変腑瑙i櫎鎾斁鍣�", + IsBold = true, + }; + topFra.AddChidren(txetBtn); + + //纭鎺т欢 + Button confirmBtn = new Button + { + X = Application.GetRealWidth(344 - 60 - 20), + Y = Application.GetRealHeight(15), + Width = Application.GetRealWidth(60), + Height = Application.GetRealHeight(20), + TextID = StringId.confirmMusic, + TextAlignment = TextAlignment.CenterRight, + TextColor = Color.SelectedColor, + TextSize = TextSize.Text14, + }; + topFra.AddChidren(confirmBtn); + + VerticalScrolViewLayout verticalScrolViewLayout = new VerticalScrolViewLayout + { + Y = Application.GetRealHeight(50), + Height = dialogFra.Height - Application.GetRealHeight(50), + Width = Application.GetRealWidth(344), + }; + dialogFra.AddChidren(verticalScrolViewLayout); + + var playList1 = new List<A31MusicModel>(); + playList1.Add(a31player); + for (int i = 0; i < a31player.Slave.slave_list.Count; i++) + { + var slave = a31player.Slave.slave_list[i]; + var music_If = A31MusicModel.A31MusicModelList.Find((c) => c.UniqueDeviceName == slave.uuid.Replace("uuid:", "")); + if (music_If != null) + { + playList1.Add(music_If); + } + } + + + var playList2 = new List<A31MusicModel>(); + for (int i = 0; i < playList1.Count; i++) + { + var player = playList1[i]; + RowLayout PlayRow = new RowLayout + { + Height = Application.GetRealHeight(50), + LineColor = Color.WhiteColor, + SubViewWidth = Application.GetRealWidth(80),//鏀瑰彉缂栬緫鎺т欢瀹藉害澶氬皯锛� + }; + verticalScrolViewLayout.AddChidren(PlayRow); + + + //鎾斁鍣ㄥ悕绉版帶浠� + Button PlayNameBtn = new Button + { + X = Application.GetRealWidth(20), + Y = Application.GetRealHeight(15), + Width = Application.GetRealWidth(150), + Height = Application.GetRealHeight(20), + TextColor = Color.TextColor, + TextSize = TextSize.Text14, + TextAlignment = TextAlignment.CenterLeft, + Text = NamePlayer(player), + }; + PlayRow.AddChidren(PlayNameBtn); + + + //閫変腑鍥炬爣鎺т欢 + Button selectedIconBtn = new Button + { + X = Application.GetRealWidth(303), + Y = Application.GetRealHeight(11), + Width = Application.GetMinRealAverage(28), + Height = Application.GetMinRealAverage(28), + UnSelectedImagePath = "MusicIcon/noSelectedIcon.png", + SelectedImagePath = "MusicIcon/selectedIcon.png", + }; + PlayRow.AddChidren(selectedIconBtn); + + ///鍔犲ぇ鍑犵偣鑼冨洿 + Button clickBtn = new Button + { + Height = Application.GetRealHeight(50), + Tag = player.UniqueDeviceName, + }; + PlayRow.AddChidren(clickBtn); + + clickBtn.MouseUpEventHandler += (sender, e) => + { + clickBtn.IsSelected = !clickBtn.IsSelected; + selectedIconBtn.IsSelected = clickBtn.IsSelected; + var uuid = playList2.Find((obj) => obj.UniqueDeviceName == clickBtn.Tag.ToString()); + if (selectedIconBtn.IsSelected) + { + if (uuid == null) + { + playList2.Add(player); + } + } + else + { + if (uuid != null) + { + playList2.Remove(player); + } + } + }; + //绾� + Button lineBtn = new Button + { + Y = PlayRow.Height - 1, + X = Application.GetRealWidth(20), + Width = Application.GetRealWidth(304), + Height = 1, + BackgroundColor = Color.LineColor, + }; + PlayRow.AddChidren(lineBtn); + } + #endregion + confirmBtn.MouseUpEventHandler += (sender, e) => + { + if (playList1.Count == 0) + { + new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.noCheckTheReleasePlayer), false); + return; + } + dialog.Close(); + RemoveThreading(a31player, playList2); + }; + } /// <summary> /// 鍙戦�佺粍鍚堝懡浠ら�昏緫澶勭悊鐨勬柟娉� /// </summary> /// <param name="serverMusic">涓绘挱鏀惧櫒</param> /// <param name="musicList1"></param> - void Threading(A31MusicModel serverMusic, List<A31MusicModel> musicList1) + void MergeThreading(A31MusicModel serverMusic, List<A31MusicModel> musicList1) { - MusicMain.loading.Start("閰嶇疆涓�..."); + MusicMain.loading.Start(Language.StringByID(StringId.inConfiguration)); bool _if = false; System.Threading.Tasks.Task.Run(() => { @@ -656,7 +912,6 @@ //杩囨护鎺変富鎾斁鍣�; continue; } - System.Threading.Thread.Sleep(1000);//绛夊緟涓�绉掑啀鍙戞暟鎹� var dd = SendMethod.OpenWeb("http://" + clientMusic.IPAddress + "/httpapi.asp?command=ConnectMasterAp:ssid=" + ssid + ":ch=" + serverIfon.WifiChannel + ":auth=OPEN:encry=NONE:pwd=:chext=0:JoinGroupMaster:eth" + serverIfon.eth2 + ":wifi" + serverIfon.ra0 + ":uuid" + serverIfon.uuid); if (null == SendMethod.OpenWeb("http://" + clientMusic.IPAddress + "/httpapi.asp?command=ConnectMasterAp:ssid=" + ssid + ":ch=" + serverIfon.WifiChannel + ":auth=OPEN:encry=NONE:pwd=:chext=0:JoinGroupMaster:eth" + serverIfon.eth2 + ":wifi" + serverIfon.ra0 + ":uuid" + serverIfon.uuid)) { @@ -665,9 +920,10 @@ } } + System.Threading.Thread.Sleep(1000);//绛夊緟1绉掑啀鍙戞暟鎹� } DateTime dateTime = DateTime.Now; - while ((DateTime.Now - dateTime).TotalMilliseconds < 12 * 1000) + while ((DateTime.Now - dateTime).TotalMilliseconds < 15 * 1000) { System.Threading.Thread.Sleep(1000); try @@ -736,24 +992,181 @@ } /// <summary> - /// 鍒嗗紑缁勫悎鐨勬挱鏀惧櫒鐨勭晫闈� + /// 瑙i櫎缁勫悎鍛戒护閫昏緫澶勭悊鐨勬柟娉� /// </summary> - public void DetachPlayMergence(A31MusicModel a31player) + /// <param name="a31player">涓绘挱鏀惧櫒</param> + /// <param name="playList1"></param> + void RemoveThreading(A31MusicModel a31player, List<A31MusicModel> playList1) { + MusicMain.loading.Start(Language.StringByID(StringId.lifting)); + var slaveList = new List<Slave>(); + slaveList.AddRange(a31player.Slave.slave_list); + // bool host_If = false; //琛ㄧず鏄惁鏄剧ず瑙i櫎鐨勬挱鏀� + bool _if = false; + System.Threading.Tasks.Task.Run(() => + { + try + { + var play_If = playList1.Find((obj) => obj.UniqueDeviceName == a31player.UniqueDeviceName); + if (play_If == null) + { + //瀛愰煶绠变笌涓婚煶绠辨柇寮�鐨勫懡浠� + for (int i = 0; i < playList1.Count; i++) + { + var clientMusic = playList1[i]; + if (null == SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:SlaveKickout:" + clientMusic.IPAddress)) + { + if (null == SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:SlaveKickout:" + clientMusic.IPAddress)) + { + } + } + ///姣忚В闄や竴涓挱鏀惧櫒闇�瑕佺瓑寰�3绉� + System.Threading.Thread.Sleep(3000);//绛夊緟3绉掑啀鍙戞暟鎹� + } + } + else + { + //瑙f暎缁勭殑鍛戒护 + if (null == SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:Ungroup")) + { + if (null == SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:Ungroup")) + { + + } + } + } + DateTime dateTime = DateTime.Now; + while ((DateTime.Now - dateTime).TotalMilliseconds < 12 * 1000) + { + System.Threading.Thread.Sleep(1000); + try + { + var result = SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:getSlaveList"); + if (result != null && result != "Failed") + { + var tmepSlaves = Newtonsoft.Json.JsonConvert.DeserializeObject<Slaves>(result); + if (tmepSlaves != null) + { + if (tmepSlaves.slave_list.Count == 0) + { + + var host_music = A31MusicModel.A31MusicModelList.Find((c) => c.UniqueDeviceName == a31player.UniqueDeviceName); + if (host_music != null) + { + host_music.ServerClientType = 0;//瑙i櫎涓讳粠鍏崇郴 + host_music.MainPlayName = ""; + } + for (int a = 0; a < slaveList.Count; a++) + { + var uuid = slaveList[a].uuid.Replace("uuid:", ""); + var music = A31MusicModel.A31MusicModelList.Find((c) => c.UniqueDeviceName == uuid); + if (music != null) + { + music.ServerClientType = 0;//瑙i櫎涓讳粠鍏崇郴 + music.IsCanShow = true;//鍏佽鏄剧ず + music.IsOnLine = false;//鍏堜笉鍏佽璇诲彇 + } + } + } + else + { + for (int b = 0; b < tmepSlaves.slave_list.Count; b++) + { + var uuid = tmepSlaves.slave_list[b].uuid.Replace("uuid:", ""); + var music = A31MusicModel.A31MusicModelList.Find((c) => c.UniqueDeviceName == uuid); + if (music != null) + { + music.ServerClientType = 0;//瑙i櫎涓讳粠鍏崇郴 + music.IsCanShow = true;//鍏佽鏄剧ず + music.IsOnLine = false;//鍏堜笉鍏佽璇诲彇 + } + } + + } + + var host_a31player = A31MusicModel.A31MusicModelList.Find((c) => c.UniqueDeviceName == a31player.UniqueDeviceName); + string str = host_a31player.Name; + for (int b = 0; b < tmepSlaves.slave_list.Count; b++) + { + str = str + "+" + tmepSlaves.slave_list[b].name; + } + host_a31player.MainPlayName = str;///鏀瑰彉涓绘挱鏀惧櫒鐨勬樉绀哄悕绉� + _if = true;//瑙i櫎鎴愬姛 + A31MusicModel.Save(); + break; + } + } + + } + catch { } + } + } + catch { } + finally + { + Application.RunOnMainThread(() => + { + MusicMain.loading.Hide(); + ///鍙互鎻愮ず瑙i櫎澶辫触; + if (_if) + { + //瑙i櫎鎴愬姛鎵嶅彲浠ュ埛鏂扮晫闈� + MainPage.BasePageView.RemoveViewByTag("MusicMain"); + var musicMain = new MusicMain(); + MainPage.BasePageView.AddChidren(musicMain); + musicMain.Show(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + } + }); + } + }); + + } + + public string NamePlayer(A31MusicModel a31player) + { + if (a31player.ServerClientType == 1) + { + return a31player.MainPlayName; + } + else + { + return a31player.Name; + } + } + + List<A31MusicModel> volumePlayList = new List<A31MusicModel>(); + A31MusicModel currVolumePlay = null;//褰撳墠鐨勬挱鏀惧櫒 + int startVolume = 0;//涔嬪墠鐨勯煶閲� + int endVolume = 0;//鐜板湪鐨勯煶閲� + /// <summary> + /// 鎾斁鍣ㄩ煶閲忕殑鐣岄潰 + /// </summary> + /// <param name="a31player">涓绘挱鏀惧櫒</param> + public void PlayerVolumeView(A31MusicModel a31player) + { #region //涓绘帶浠� - Dialog dialog = new Dialog() - { - BackgroundColor = Color.PopupBackgroundColor, - }; - dialog.Show(); + Dialog volumedialog = new Dialog(); + volumedialog.Show(); //鐖舵帶浠� FrameLayout frame = new FrameLayout { }; - dialog.AddChidren(frame); + volumedialog.AddChidren(frame); frame.MouseUpEventHandler += (sen, e) => { - dialog.Close(); + volumedialog.Close(); + if (updateVolumeThread != null) + { + try + { + if (updateVolumeThread.IsAlive) + { + updateVolumeThread.Abort(); + } + } + catch { } + } }; //鐧借壊蹇埗鎺т欢 FrameLayout dialogFra = new FrameLayout() @@ -770,7 +1183,7 @@ FrameLayout topFra = new FrameLayout() { Width = Application.GetRealWidth(344), - Height = Application.GetRealHeight(50), + Height = Application.GetRealHeight(58), }; dialogFra.AddChidren(topFra); //鍙栨秷鎺т欢 @@ -788,7 +1201,18 @@ topFra.AddChidren(cancelnBtn); cancelnBtn.MouseUpEventHandler += (sen, e) => { - dialog.Close(); + volumedialog.Close(); + if (updateVolumeThread != null) + { + try + { + if (updateVolumeThread.IsAlive) + { + updateVolumeThread.Abort(); + } + } + catch { } + } }; //鏍囬鎺т欢 Button txetBtn = new Button @@ -800,12 +1224,10 @@ TextColor = Color.TextColor, TextSize = TextSize.Text16, TextAlignment = TextAlignment.Center, - //TextID = StringId.selectedMergence, + TextID = StringId.volumeAdjustment, IsBold = true, - Text= a31player.Name, }; topFra.AddChidren(txetBtn); - //纭鎺т欢 Button confirmBtn = new Button { @@ -819,197 +1241,186 @@ TextSize = TextSize.Text14, }; topFra.AddChidren(confirmBtn); - - VerticalScrolViewLayout verticalScrolViewLayout = new VerticalScrolViewLayout + confirmBtn.MouseUpEventHandler += (sen, e) => { - Y = Application.GetRealHeight(50), - Height = dialogFra.Height - Application.GetRealHeight(50), - Width = Application.GetRealWidth(344), + volumedialog.Close(); + if (updateVolumeThread != null) + { + try + { + if (updateVolumeThread.IsAlive) + { + updateVolumeThread.Abort(); + } + } + catch { } + } }; - dialogFra.AddChidren(verticalScrolViewLayout); - var playList1 = new List<A31MusicModel>(); - playList1.Add(a31player); + VerticalScrolViewLayout volumeViewLayout = new VerticalScrolViewLayout + { + Y = Application.GetRealHeight(58), + Height = dialogFra.Height - Application.GetRealHeight(58), + Width = Application.GetRealWidth(343), + }; + dialogFra.AddChidren(volumeViewLayout); + volumePlayList.Clear(); for (int i = 0; i < a31player.Slave.slave_list.Count; i++) { var slave = a31player.Slave.slave_list[i]; var music_If = A31MusicModel.A31MusicModelList.Find((c) => c.UniqueDeviceName == slave.uuid.Replace("uuid:", "")); if (music_If != null) { - playList1.Add(music_If); + music_If.ServerClientType = -1; + music_If.A31PlayStatus.vol = slave.volume; + volumePlayList.Add(music_If); } } + volumePlayList.Add(a31player); - - var playList2 = new List<A31MusicModel>(); - for (int i = 0; i < playList1.Count; i++) + for (int i = 0; i < volumePlayList.Count; i++) { - var player = playList1[i]; - RowLayout PlayRow = new RowLayout + var player = volumePlayList[i]; + FrameLayout volumeFra = new FrameLayout { - Height = Application.GetRealHeight(50), - LineColor = Color.WhiteColor, - SubViewWidth = Application.GetRealWidth(80),//鏀瑰彉缂栬緫鎺т欢瀹藉害澶氬皯锛� + Height = Application.GetRealHeight(64), }; - verticalScrolViewLayout.AddChidren(PlayRow); - - - //鎾斁鍣ㄥ悕绉版帶浠� - Button PlayNameBtn = new Button + volumeViewLayout.AddChidren(volumeFra); + Button volumeTextBtn = new Button { - X = Application.GetRealWidth(20), - Y = Application.GetRealHeight(15), - Width = Application.GetRealWidth(150), - Height = Application.GetRealHeight(20), - TextColor = Color.TextColor, - TextSize = TextSize.Text14, + X = Application.GetRealWidth(28), + Y = Application.GetRealHeight(8), + Width = Application.GetRealWidth(200), + Height = Application.GetRealHeight(14), + TextColor = Color.MusicNoTxetColor, + TextSize = TextSize.Text10, TextAlignment = TextAlignment.CenterLeft, - Text = player.Name, + }; - PlayRow.AddChidren(PlayNameBtn); - - - //閫変腑鍥炬爣鎺т欢 - Button selectedIconBtn = new Button + volumeFra.AddChidren(volumeTextBtn); + if (player.ServerClientType == -1) { - X = Application.GetRealWidth(303), - Y = Application.GetRealHeight(11), - Width = Application.GetMinRealAverage(28), - Height = Application.GetMinRealAverage(28), - UnSelectedImagePath = "MusicIcon/noSelectedIcon.png", - SelectedImagePath = "MusicIcon/selectedIcon.png", + volumeTextBtn.Text = player.Name + Language.StringByID(StringId.volumeMusic); + } + else if (player.ServerClientType == 1) + { + volumeTextBtn.Text = Language.StringByID(StringId.totalVolume); + } + + DiyImageSeekBar volSeekBar = new DiyImageSeekBar + { + Y = Application.GetRealHeight(12), + X = Application.GetRealWidth(28), + Width = Application.GetRealWidth(240), + Height = Application.GetRealHeight(54),//杩涘害鏉$埗鎺т欢鑳屾櫙楂樺害 + IsProgressTextShow = false,//鏄剧ず鐧惧垎姣� + IsClickable = true,//杩涘害鏉℃槸鍚︽粦鍔� + ProgressBarColor = Color.SelectedColor,//閫変腑杩涘害鏉¢鑹� + ThumbImagePath = "MusicIcon/progressIcon.png",//杩涘害鏉℃寜閽浘鏍� + ThumbImageHeight = Application.GetMinRealAverage(54),//杩涘害鏉℃寜閽浘鏍囩殑楂樺害锛堥粯璁ゆ鏂瑰舰锛氬鍜岄珮涓�鏍凤級 + SeekBarViewHeight = Application.GetMinRealAverage(8),//杩涘害鏉$殑楂樺害 + Progress = int.Parse(player.A31PlayStatus.vol), + //ProgressChangeDelayTime= }; - PlayRow.AddChidren(selectedIconBtn); + volumeFra.AddChidren(volSeekBar); - ///鍔犲ぇ鍑犵偣鑼冨洿 - Button clickBtn = new Button + Button valueBtn = new Button { - Height = Application.GetRealHeight(50), - Tag = player.UniqueDeviceName, + X = Application.GetRealWidth(289), + Y = Application.GetRealHeight(31), + Width = Application.GetRealWidth(26), + Height = Application.GetRealHeight(17), + TextColor = Color.MusicNoTxetColor, + TextSize = TextSize.Text12, + TextAlignment = TextAlignment.CenterLeft, + Text = player.A31PlayStatus.vol + "%", }; - PlayRow.AddChidren(clickBtn); + volumeFra.AddChidren(valueBtn); - clickBtn.MouseUpEventHandler += (sender, e) => + + ///闊抽噺杩涘害鏉$偣鍑讳簨浠� + EventHandler<int> progressClick = (sender, e) => { - clickBtn.IsSelected = !clickBtn.IsSelected; - selectedIconBtn.IsSelected = clickBtn.IsSelected; - var uuid = playList2.Find((obj) => obj.UniqueDeviceName== clickBtn.Tag.ToString()); - if (selectedIconBtn.IsSelected) + + if (currVolumePlay == null || (currVolumePlay != null && currVolumePlay.UniqueDeviceName != player.UniqueDeviceName)) { - if (uuid == null) - { - playList2.Add(player); - } + currVolumePlay = player; } - else + endVolume = e; + if (player.ServerClientType == -1) { - if (uuid != null) + valueBtn.Text = volSeekBar.Progress + "%"; + //SendMethod.ControlVolume(volSeekBar.Progress, player); + } + else if (player.ServerClientType == 1) + { + for (int j = 0; j < volumePlayList.Count; j++) { - playList2.Remove(player); + var music = volumePlayList[j]; + var frameLayout = (FrameLayout)volumeViewLayout.GetChildren(j); + var diyImageSeekBar = (DiyImageSeekBar)frameLayout.GetChildren(1); + var button = (Button)frameLayout.GetChildren(2); + diyImageSeekBar.Progress = volSeekBar.Progress; + button.Text = volSeekBar.Progress + "%"; + //SendMethod.ControlVolume(volSeekBar.Progress, music); } } }; - //绾� - Button lineBtn = new Button - { - Y = PlayRow.Height - 1, - X = Application.GetRealWidth(20), - Width = Application.GetRealWidth(304), - Height = 1, - BackgroundColor = Color.LineColor, - }; - PlayRow.AddChidren(lineBtn); + volSeekBar.OnProgressChangedEvent += progressClick; + volSeekBar.OnStopTrackingTouchEvent += progressClick; } #endregion - confirmBtn.MouseUpEventHandler += (sender, e) => - { - if (playList1.Count == 0) + + } + /// <summary> + /// 瀹氭椂闊抽噺骞朵笖鍙戦�佸懡浠� + /// </summary> + System.Threading.Thread updateVolumeThread; + public void UpdateVolume() + { + if (updateVolumeThread != null) { + try { - new PublicAssmebly().TipMsgAutoClose("杩樻病鏈夐�夋嫨瑙i櫎缁勬挱鏀惧櫒", false); - return; + if (updateVolumeThread.IsAlive) { + updateVolumeThread.Abort(); + } } - dialog.Close(); - - MusicMain.loading.Start("瑙i櫎涓�..."); - bool _if = false; - System.Threading.Tasks.Task.Run(() => + catch { } + } + updateVolumeThread = new System.Threading.Thread(() => + { + try { - try + while (true) { - var play_If = playList1.Find((obj) => obj.UniqueDeviceName == a31player.UniqueDeviceName); - if (play_If == null) + System.Threading.Thread.Sleep(500); + if (startVolume == endVolume || currVolumePlay == null) { - //瀛愰煶绠变笌涓婚煶绠辨柇寮�鐨勫懡浠� - for (int i = 0; i < playList1.Count; i++) - { - var clientMusic = playList1[i]; - if (null == SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:SlaveKickout:" + clientMusic.IPAddress)) - { - if (null == SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:SlaveKickout:" + clientMusic.IPAddress)) - { + continue; + } + startVolume = endVolume; - } - } - ///姣忚В闄や竴涓挱鏀惧櫒闇�瑕佺瓑寰�3绉� - System.Threading.Thread.Sleep(3000);//绛夊緟3绉掑啀鍙戞暟鎹� + if (currVolumePlay.ServerClientType == -1) + { + SendMethod.ControlVolume(endVolume, currVolumePlay); + } + else if (currVolumePlay.ServerClientType == 1) + { + for (int j = 0; j < volumePlayList.Count; j++) + { + var music = volumePlayList[j]; + SendMethod.ControlVolume(endVolume, music); } } - else - { - //瑙f暎缁勭殑鍛戒护 - if (null == SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:Ungroup")) - { - if (null == SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:Ungroup")) - { - } - } - } - DateTime dateTime = DateTime.Now; - while ((DateTime.Now - dateTime).TotalMilliseconds < 12 * 1000) - { - System.Threading.Thread.Sleep(1000); - try - { - var result = SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:getSlaveList"); - if (result != null && result != "Failed") - { - var tmepSlaves = Newtonsoft.Json.JsonConvert.DeserializeObject<Slaves>(result); - if (tmepSlaves != null && tmepSlaves.slave_list.Count == 0) - { - _if = true;//瑙i櫎鎴愬姛 - A31MusicModel.Save(); - break; - } - } - - - } - catch { } - } } - catch { } - finally - { - Application.RunOnMainThread(() => - { - MusicMain.loading.Hide(); - ///鍙互鎻愮ず瑙i櫎澶辫触; - if (_if) - { - //瑙i櫎鎴愬姛鎵嶅彲浠ュ埛鏂扮晫闈� - MainPage.BasePageView.RemoveViewByTag("MusicMain"); - var musicMain = new MusicMain(); - MainPage.BasePageView.AddChidren(musicMain); - musicMain.Show(); - MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; - } - }); - } - }); - - }; - } + } + catch { } + }) + { IsBackground = true }; + updateVolumeThread.Start(); + } + } [System.Serializable] public class A31Wifi鈥� { -- Gitblit v1.8.0