From e56137e33ed5c77a485f9e83ee4b6534cfdf6432 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期一, 03 八月 2020 15:00:21 +0800 Subject: [PATCH] 2020-8-03-1 --- HDL_ON/UI/UI2/FuntionControlView/Music/View/DialogView.cs | 199 +++++++++++++++++++++++++++---------------------- 1 files changed, 110 insertions(+), 89 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/View/DialogView.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/View/DialogView.cs index fe5d085..3bc6869 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Music/View/DialogView.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Music/View/DialogView.cs @@ -1150,12 +1150,26 @@ A31MusicModel currVolumePlay = null;//褰撳墠鐨勬挱鏀惧櫒 int startVolume = 0;//涔嬪墠鐨勯煶閲� int endVolume = 0;//鐜板湪鐨勯煶閲� + string if_volume ="";//鏍囪鏄皟鑺傛�婚煶閲忚繕鏄崟涓挱鏀惧櫒闊抽噺; /// <summary> /// 鎾斁鍣ㄩ煶閲忕殑鐣岄潰 /// </summary> /// <param name="a31player">涓绘挱鏀惧櫒</param> public void PlayerVolumeView(A31MusicModel a31player) { + 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) + { + music_If.ServerClientType = -1; + music_If.A31PlayStatus.vol = slave.volume; + volumePlayList.Add(music_If); + } + } + volumePlayList.Add(a31player); #region //涓绘帶浠� Dialog volumedialog = new Dialog(); @@ -1163,32 +1177,18 @@ //鐖舵帶浠� FrameLayout frame = new FrameLayout { }; volumedialog.AddChidren(frame); - frame.MouseUpEventHandler += (sen, e) => - { - volumedialog.Close(); - if (updateVolumeThread != null) - { - try - { - if (updateVolumeThread.IsAlive) - { - updateVolumeThread.Abort(); - } - } - catch { } - } - }; //鐧借壊蹇埗鎺т欢 FrameLayout dialogFra = new FrameLayout() { X = Application.GetRealWidth(16), - Y = Application.GetRealHeight(397), + Y = Application.GetRealHeight(397-20), Width = Application.GetRealWidth(344), - Height = Application.GetRealHeight(250), + Height = Application.GetRealHeight(250+20), BackgroundColor = Color.WhiteColor, Radius = (uint)Application.GetRealHeight(12), }; frame.AddChidren(dialogFra); + #region 纭 鍙栨秷 //鏄剧ず澶撮儴淇℃伅鐖舵帶浠� FrameLayout topFra = new FrameLayout() { @@ -1209,21 +1209,6 @@ TextSize = TextSize.Text14, }; topFra.AddChidren(cancelnBtn); - cancelnBtn.MouseUpEventHandler += (sen, e) => - { - volumedialog.Close(); - if (updateVolumeThread != null) - { - try - { - if (updateVolumeThread.IsAlive) - { - updateVolumeThread.Abort(); - } - } - catch { } - } - }; //鏍囬鎺т欢 Button txetBtn = new Button { @@ -1251,8 +1236,8 @@ TextSize = TextSize.Text14, }; topFra.AddChidren(confirmBtn); - confirmBtn.MouseUpEventHandler += (sen, e) => - { + + EventHandler<MouseEventArgs> eventHandler= (sen,e) => { volumedialog.Close(); if (updateVolumeThread != null) { @@ -1266,31 +1251,72 @@ catch { } } }; + cancelnBtn.MouseUpEventHandler += eventHandler; + confirmBtn.MouseUpEventHandler += eventHandler; + frame.MouseUpEventHandler += eventHandler; + #endregion + #region 鎬婚煶閲忕殑View + FrameLayout totalVolumeFra = new FrameLayout + { + Height = Application.GetRealHeight(64), + Y = Application.GetRealHeight(58), + }; + dialogFra.AddChidren(totalVolumeFra); + Button totalvolumeTextBtn = new Button + { + 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 = Language.StringByID(StringId.totalVolume), + }; + totalVolumeFra.AddChidren(totalvolumeTextBtn); + DiyImageSeekBar totalVolSeekBar = 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(a31player.A31PlayStatus.vol), + //ProgressChangeDelayTime= + }; + totalVolumeFra.AddChidren(totalVolSeekBar); + + Button totalVolumeValueBtn = new Button + { + X = Application.GetRealWidth(289), + Y = Application.GetRealHeight(31), + Width = Application.GetRealWidth(26 + 15), + Height = Application.GetRealHeight(17), + TextColor = Color.MusicNoTxetColor, + TextSize = TextSize.Text12, + TextAlignment = TextAlignment.CenterLeft, + Text = totalVolSeekBar.Progress.ToString() + "%", + }; + totalVolumeFra.AddChidren(totalVolumeValueBtn); + #endregion VerticalScrolViewLayout volumeViewLayout = new VerticalScrolViewLayout { - Y = Application.GetRealHeight(58), - Height = dialogFra.Height - Application.GetRealHeight(58), + Y =Application.GetRealHeight(58+64), + Height = dialogFra.Height - Application.GetRealHeight(58+64), 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) - { - music_If.ServerClientType = -1; - music_If.A31PlayStatus.vol = slave.volume; - volumePlayList.Add(music_If); - } - } - volumePlayList.Add(a31player); for (int i = 0; i < volumePlayList.Count; i++) { var player = volumePlayList[i]; + #region 璋冭妭褰撲釜鎾斁鍣╒iew FrameLayout volumeFra = new FrameLayout { Height = Application.GetRealHeight(64), @@ -1305,17 +1331,10 @@ TextColor = Color.MusicNoTxetColor, TextSize = TextSize.Text10, TextAlignment = TextAlignment.CenterLeft, + Text = player.Name + Language.StringByID(StringId.volumeMusic), }; volumeFra.AddChidren(volumeTextBtn); - if (player.ServerClientType == -1) - { - volumeTextBtn.Text = player.Name + Language.StringByID(StringId.volumeMusic); - } - else if (player.ServerClientType == 1) - { - volumeTextBtn.Text = Language.StringByID(StringId.totalVolume); - } DiyImageSeekBar volSeekBar = new DiyImageSeekBar { @@ -1346,36 +1365,39 @@ Text = player.A31PlayStatus.vol + "%", }; volumeFra.AddChidren(valueBtn); - + #endregion ///闊抽噺杩涘害鏉$偣鍑讳簨浠� EventHandler<int> progressClick = (sender, e) => { - if (currVolumePlay == null || (currVolumePlay != null && currVolumePlay.UniqueDeviceName != player.UniqueDeviceName)) { currVolumePlay = player; } endVolume = e; - if (player.ServerClientType == -1) - { - valueBtn.Text = volSeekBar.Progress + "%"; - } - else if (player.ServerClientType == 1) - { - for (int j = 0; j < volumePlayList.Count; j++) - { - 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 + "%"; - } - } + if_volume = "Volume"; + valueBtn.Text = volSeekBar.Progress + "%"; }; volSeekBar.OnProgressChangedEvent += progressClick; volSeekBar.OnStopTrackingTouchEvent += progressClick; } + + EventHandler<int> totalProgressClick = (sender, e) => + { + if_volume = "totalVolume"; + endVolume = e; + totalVolumeValueBtn.Text = totalVolSeekBar.Progress + "%"; + for (int j = 0; j < volumePlayList.Count; j++) + { + var music = volumePlayList[j]; + var frameLayout = (FrameLayout)volumeViewLayout.GetChildren(j); + var diyImageSeekBar = (DiyImageSeekBar)frameLayout.GetChildren(1); + var button = (Button)frameLayout.GetChildren(2); + diyImageSeekBar.Progress = totalVolSeekBar.Progress; + button.Text = totalVolSeekBar.Progress + "%"; + } + }; + totalVolSeekBar.OnProgressChangedEvent += totalProgressClick; + totalVolSeekBar.OnStopTrackingTouchEvent += totalProgressClick; #endregion } @@ -1401,32 +1423,31 @@ while (true) { System.Threading.Thread.Sleep(500); - if (startVolume == endVolume || currVolumePlay == null) + if (startVolume == endVolume) { continue; } startVolume = endVolume; - - if (currVolumePlay.ServerClientType == -1) + if (if_volume == "totalVolume") { - SendMethod.ControlVolume(endVolume, currVolumePlay); - } - else if (currVolumePlay.ServerClientType == 1) - { - //鍏堝彂涓绘挱鏀惧櫒闊抽噺鍛戒护 - SendMethod.ControlVolume(endVolume, currVolumePlay); for (int j = 0; j < volumePlayList.Count; j++) { var music = volumePlayList[j]; - if (music.ServerClientType == 1) - { - continue; - } - System.Threading.Thread.Sleep(500); //姣忎釜500姣鍙戜粠鎾斁鍣ㄩ煶閲忓懡浠� SendMethod.ControlVolume(endVolume, music); + System.Threading.Thread.Sleep(1000); + } } + else if(if_volume == "Volume") + { + if (currVolumePlay == null) + { + continue; + } + SendMethod.ControlVolume(endVolume, currVolumePlay); + } + } } -- Gitblit v1.8.0