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 | 312 +++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 298 insertions(+), 14 deletions(-)
diff --git a/HDL_ON/UI/Music/View/DialogView.cs b/HDL_ON/UI/Music/View/DialogView.cs
index 44b0034..b136a9a 100644
--- a/HDL_ON/UI/Music/View/DialogView.cs
+++ b/HDL_ON/UI/Music/View/DialogView.cs
@@ -402,7 +402,7 @@
if (playList1.Count <= 1)
{
- new PublicAssmebly().TipMsgAutoClose("鑷冲皯閫変腑涓や釜浠ヤ笂鎾斁鍣�", false);
+ new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.selectAtLeastTwoPlayers), false);
return;
}
int number = 0;
@@ -415,7 +415,7 @@
}
if (number >= 2)
{
- new PublicAssmebly().TipMsgAutoClose("涓嶈兘閫変腑涓や釜鎴栦袱涓互涓婁富鎾斁鍣ㄨ繘琛岀粍鍚�", false);
+ new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.cannotSelectTwoOrMoreMainPlayersToCombine), false);
//濡傛灉閮芥槸涓绘挱鏀炬垜灏变笉鑳界粍鍚�;
return;
}
@@ -663,7 +663,7 @@
{
if (selectedBtn.Name.ToString() == "No")
{
- new PublicAssmebly().TipMsgAutoClose("杩樻病閫変腑鎾斁鍣�", false);
+ new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.noSelectedPlay), false);
return;
}
dialogF.Close();
@@ -739,8 +739,8 @@
TextColor = Color.TextColor,
TextSize = TextSize.Text16,
TextAlignment = TextAlignment.Center,
- //TextID = StringId.selectedMergence,
- Text = "閫変腑瑙i櫎鎾斁鍣�",
+ TextID = StringId.checkTheReleasePlayer,
+ //Text = "閫変腑瑙i櫎鎾斁鍣�",
IsBold = true,
};
topFra.AddChidren(txetBtn);
@@ -864,7 +864,7 @@
{
if (playList1.Count == 0)
{
- new PublicAssmebly().TipMsgAutoClose("杩樻病鏈夐�夋嫨瑙i櫎缁勬挱鏀惧櫒", false);
+ new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.noCheckTheReleasePlayer), false);
return;
}
dialog.Close();
@@ -878,7 +878,7 @@
/// <param name="musicList1"></param>
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(() =>
{
@@ -998,10 +998,10 @@
/// <param name="playList1"></param>
void RemoveThreading(A31MusicModel a31player, List<A31MusicModel> playList1)
{
- MusicMain.loading.Start("瑙i櫎涓�...");
+ MusicMain.loading.Start(Language.StringByID(StringId.lifting));
var slaveList = new List<Slave>();
slaveList.AddRange(a31player.Slave.slave_list);
- bool host_If = false; //琛ㄧず鏄惁鏄剧ず瑙i櫎鐨勬挱鏀�
+ // bool host_If = false; //琛ㄧず鏄惁鏄剧ず瑙i櫎鐨勬挱鏀�
bool _if = false;
System.Threading.Tasks.Task.Run(() =>
{
@@ -1010,7 +1010,6 @@
var play_If = playList1.Find((obj) => obj.UniqueDeviceName == a31player.UniqueDeviceName);
if (play_If == null)
{
- host_If = false;
//瀛愰煶绠变笌涓婚煶绠辨柇寮�鐨勫懡浠�
for (int i = 0; i < playList1.Count; i++)
{
@@ -1028,7 +1027,6 @@
}
else
{
- host_If = true;
//瑙f暎缁勭殑鍛戒护
if (null == SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:Ungroup"))
{
@@ -1050,7 +1048,7 @@
var tmepSlaves = Newtonsoft.Json.JsonConvert.DeserializeObject<Slaves>(result);
if (tmepSlaves != null)
{
- if (host_If && tmepSlaves.slave_list.Count == 0)
+ if (tmepSlaves.slave_list.Count == 0)
{
var host_music = A31MusicModel.A31MusicModelList.Find((c) => c.UniqueDeviceName == a31player.UniqueDeviceName);
@@ -1073,9 +1071,9 @@
}
else
{
- for (int a = 0; a < playList1.Count; a++)
+ for (int b = 0; b < tmepSlaves.slave_list.Count; b++)
{
- var uuid = playList1[a].UniqueDeviceName;
+ var uuid = tmepSlaves.slave_list[b].uuid.Replace("uuid:", "");
var music = A31MusicModel.A31MusicModelList.Find((c) => c.UniqueDeviceName == uuid);
if (music != null)
{
@@ -1084,6 +1082,7 @@
music.IsOnLine = false;//鍏堜笉鍏佽璇诲彇
}
}
+
}
var host_a31player = A31MusicModel.A31MusicModelList.Find((c) => c.UniqueDeviceName == a31player.UniqueDeviceName);
@@ -1137,6 +1136,291 @@
}
}
+ 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 volumedialog = new Dialog();
+ volumedialog.Show();
+ //鐖舵帶浠�
+ 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),
+ 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(58),
+ };
+ 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) =>
+ {
+ volumedialog.Close();
+ if (updateVolumeThread != null)
+ {
+ try
+ {
+ if (updateVolumeThread.IsAlive)
+ {
+ updateVolumeThread.Abort();
+ }
+ }
+ catch { }
+ }
+ };
+ //鏍囬鎺т欢
+ 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.volumeAdjustment,
+ 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);
+ confirmBtn.MouseUpEventHandler += (sen, e) =>
+ {
+ volumedialog.Close();
+ if (updateVolumeThread != null)
+ {
+ try
+ {
+ if (updateVolumeThread.IsAlive)
+ {
+ updateVolumeThread.Abort();
+ }
+ }
+ catch { }
+ }
+ };
+
+ 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)
+ {
+ 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];
+ FrameLayout volumeFra = new FrameLayout
+ {
+ Height = Application.GetRealHeight(64),
+ };
+ volumeViewLayout.AddChidren(volumeFra);
+ Button volumeTextBtn = 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,
+
+ };
+ 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
+ {
+ 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=
+ };
+ volumeFra.AddChidren(volSeekBar);
+
+ Button valueBtn = new Button
+ {
+ 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 + "%",
+ };
+ volumeFra.AddChidren(valueBtn);
+
+
+ ///闊抽噺杩涘害鏉$偣鍑讳簨浠�
+ 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 + "%";
+ //SendMethod.ControlVolume(volSeekBar.Progress, player);
+ }
+ 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 + "%";
+ //SendMethod.ControlVolume(volSeekBar.Progress, music);
+ }
+ }
+ };
+ volSeekBar.OnProgressChangedEvent += progressClick;
+ volSeekBar.OnStopTrackingTouchEvent += progressClick;
+ }
+ #endregion
+
+ }
+ /// <summary>
+ /// 瀹氭椂闊抽噺骞朵笖鍙戦�佸懡浠�
+ /// </summary>
+ System.Threading.Thread updateVolumeThread;
+ public void UpdateVolume()
+ {
+ if (updateVolumeThread != null) {
+ try
+ {
+ if (updateVolumeThread.IsAlive) {
+ updateVolumeThread.Abort();
+ }
+ }
+ catch { }
+ }
+ updateVolumeThread = new System.Threading.Thread(() =>
+ {
+ try
+ {
+ while (true)
+ {
+ System.Threading.Thread.Sleep(500);
+ if (startVolume == endVolume || currVolumePlay == null)
+ {
+ continue;
+ }
+ startVolume = endVolume;
+
+ 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);
+ }
+ }
+
+ }
+ }
+ catch { }
+ })
+ { IsBackground = true };
+ updateVolumeThread.Start();
+ }
+
}
[System.Serializable]
public class A31Wifi鈥� {
--
Gitblit v1.8.0