using System;
|
using System.Collections.Generic;
|
using Shared;
|
namespace HDL_ON.UI.Music.View
|
{
|
public class DialogView
|
{
|
/// <summary>
|
///弹窗文件夹列表界面
|
/// </summary>
|
/// <param name="musicInfo"></param>
|
public void FieListView(MusicInfo musicInfo)
|
{
|
#region
|
//主控件
|
Dialog dialog = new Dialog()
|
{
|
BackgroundColor = MusicColor.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(187),
|
Width = Application.GetRealWidth(344),
|
Height = Application.GetRealHeight(460),
|
BackgroundColor = MusicColor.WhiteColor,
|
Radius = (uint)Application.GetRealHeight(12),
|
};
|
frame.AddChidren(dialogFra);
|
//显示头部信息父控件
|
FrameLayout topFra = new FrameLayout()
|
{
|
Width = Application.GetRealWidth(344),
|
Height = Application.GetRealHeight(70),
|
};
|
dialogFra.AddChidren(topFra);
|
//取消控件
|
Button cancelnBtn = new Button
|
{
|
X = Application.GetRealWidth(16),
|
Y = Application.GetRealHeight(24),
|
Width = Application.GetRealWidth(60),
|
Height = Application.GetRealHeight(20),
|
TextID = StringId.cancelMusic,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = MusicColor.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(23),
|
Width = Application.GetRealWidth(152),
|
Height = Application.GetRealHeight(22),
|
TextColor = MusicColor.TextColor,
|
TextSize = TextSize.Text16,
|
TextAlignment = TextAlignment.Center,
|
TextID = StringId.myList,
|
IsBold = true,
|
};
|
topFra.AddChidren(txetBtn);
|
|
//添加图标控件
|
Button addIconBtn = new Button
|
{
|
X = Application.GetRealWidth(304),
|
Y = Application.GetRealHeight(20),
|
Width = Application.GetMinRealAverage(28),
|
Height = Application.GetMinRealAverage(28),
|
UnSelectedImagePath = "MusicIcon/addMusic.png",
|
};
|
topFra.AddChidren(addIconBtn);
|
|
#endregion
|
VerticalScrolViewLayout verticalScrolViewLayout = new VerticalScrolViewLayout
|
{
|
Y = Application.GetRealHeight(70),
|
Height = dialogFra.Height - Application.GetRealHeight(70),
|
Width = Application.GetRealWidth(344),
|
};
|
dialogFra.AddChidren(verticalScrolViewLayout);
|
addIconBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
var fileNameList = new List<string>();
|
fileNameList.Clear();
|
foreach (var stringName in A31MusicModel.Current.FileLists)
|
{
|
fileNameList.Add(stringName.ListName);
|
|
}
|
new TipView().InputBox(StringId.addNewList, "", StringId.listNameNull, StringId.listNamesSame, fileNameList, (name) =>
|
{
|
|
A31MusicModel.Current.FileLists.Add(new FileListInfo { ListName = name, });
|
A31MusicModel.Save();
|
FileView(dialog, verticalScrolViewLayout, musicInfo);
|
});
|
};
|
FileView(dialog, verticalScrolViewLayout, musicInfo);
|
|
}
|
void FileView(Dialog dialog, VerticalScrolViewLayout verticalScrolViewLayout, MusicInfo musicInfo)
|
{
|
verticalScrolViewLayout.RemoveAll();
|
for (int i = 0; i < A31MusicModel.Current.FileLists.Count; i++)
|
{
|
var list = A31MusicModel.Current.FileLists[i];
|
RowLayout addFlieRow = new RowLayout
|
{
|
Height = Application.GetRealHeight(78),
|
LineColor = MusicColor.WhiteColor,
|
SubViewWidth = Application.GetRealWidth(80),//改变编辑控件宽度多少;
|
};
|
verticalScrolViewLayout.AddChidren(addFlieRow);
|
//文件图标
|
Button fileIconBtn = new Button
|
{
|
X = Application.GetRealWidth(12),
|
Y = Application.GetRealHeight(8),
|
Width = Application.GetMinRealAverage(62),
|
Height = Application.GetMinRealAverage(62),
|
UnSelectedImagePath = "MusicIcon/file.png",
|
};
|
addFlieRow.AddChidren(fileIconBtn);
|
|
//文件名控件
|
Button fileNameBtn = new Button
|
{
|
X = fileIconBtn.Right + Application.GetRealWidth(12),
|
Y = Application.GetRealHeight(29),
|
Width = Application.GetRealWidth(189),
|
Height = Application.GetRealHeight(20),
|
TextColor = MusicColor.TextColor,
|
TextSize = TextSize.Text14,
|
TextAlignment = TextAlignment.CenterLeft,
|
Text = list.ListName,
|
};
|
addFlieRow.AddChidren(fileNameBtn);
|
|
///编辑控件
|
var editBtn = new Button
|
{
|
BackgroundColor = MusicColor.MusicEditColor,
|
Text = Language.StringByID(StringId.editMusic),
|
TextColor = MusicColor.WhiteColor,
|
TextSize = TextSize.Text16,
|
};
|
addFlieRow.AddRightView(editBtn);
|
|
editBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
|
var fileNameList = new List<string>();
|
fileNameList.Clear();
|
foreach (var stringName in A31MusicModel.Current.FileLists)
|
{
|
fileNameList.Add(stringName.ListName);
|
|
}
|
new TipView().InputBox(StringId.modifyName, list.ListName, StringId.listNameNull, StringId.listNamesSame, fileNameList, (name) =>
|
{
|
|
if (list.ListName != name)
|
{ ///修改名称不一样更新保存
|
list.ListName = name;
|
fileNameBtn.Text = name;
|
A31MusicModel.Save();
|
}
|
});
|
|
};
|
|
///删除控件
|
var delBtn = new Button
|
{
|
BackgroundColor = MusicColor.MusicDelColor,
|
Text = Language.StringByID(StringId.delMusic),
|
TextColor = MusicColor.WhiteColor,
|
TextSize = TextSize.Text16,
|
};
|
addFlieRow.AddRightView(delBtn);
|
delBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
new View.TipView().TipBox(StringId.tip, StringId.delMusicFile, () =>
|
{
|
addFlieRow.RemoveFromParent();
|
A31MusicModel.Current.FileLists.Remove(list);
|
A31MusicModel.Save();
|
});
|
};
|
|
EventHandler<MouseEventArgs> click = (sender, e) =>
|
{
|
|
if (null == list.MusicInfoList.Find((music) => music.URL == musicInfo.URL))
|
{
|
list.MusicInfoList.Add(musicInfo);
|
A31MusicModel.Save();
|
}
|
dialog.Close();
|
string msg = Language.StringByID(StringId.addMusicList) + list.ListName;
|
new PublicAssmebly().TipMsgAutoClose(msg, false);
|
};
|
fileIconBtn.MouseUpEventHandler += click;
|
fileNameBtn.MouseUpEventHandler += click;
|
addFlieRow.MouseUpEventHandler += click;
|
}
|
|
|
}
|
/// <summary>
|
/// 选中组合的播放器的界面
|
/// </summary>
|
public void PlayMergence(A31MusicModel a31MusicModel)
|
{
|
|
#region
|
|
//主控件
|
Dialog dialog = new Dialog()
|
{
|
BackgroundColor = MusicColor.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 = MusicColor.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 = MusicColor.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 = MusicColor.TextColor,
|
TextSize = TextSize.Text16,
|
TextAlignment = TextAlignment.Center,
|
TextID = StringId.selectedMergence,
|
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 = MusicColor.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>();
|
for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
|
{
|
var player = A31MusicModel.A31MusicModelList[i];
|
if (!player.IsOnLine)
|
{
|
//不在线不显示;
|
continue;
|
}
|
RowLayout PlayRow = new RowLayout
|
{
|
Height = Application.GetRealHeight(50),
|
LineColor = MusicColor.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 = MusicColor.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),
|
};
|
PlayRow.AddChidren(clickBtn);
|
if (a31MusicModel.UniqueDeviceName == player.UniqueDeviceName)
|
{
|
clickBtn.IsSelected = selectedIconBtn.IsSelected = true;
|
playList1.Add(a31MusicModel);
|
}
|
clickBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
clickBtn.IsSelected = !clickBtn.IsSelected;
|
selectedIconBtn.IsSelected = clickBtn.IsSelected;
|
var musicPlayer = playList1.Find((c) => c.UniqueDeviceName == player.UniqueDeviceName);
|
if (selectedIconBtn.IsSelected)
|
{
|
if (musicPlayer == null)
|
{
|
playList1.Add(player);
|
}
|
}
|
else
|
{
|
if (musicPlayer != null)
|
{
|
playList1.Remove(player);
|
}
|
}
|
};
|
//线
|
Button lineBtn = new Button
|
{
|
Y = PlayRow.Height - 1,
|
X = Application.GetRealWidth(20),
|
Width = Application.GetRealWidth(304),
|
Height = 1,
|
BackgroundColor = MusicColor.LineColor,
|
};
|
PlayRow.AddChidren(lineBtn);
|
}
|
#endregion
|
confirmBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
|
if (playList1.Count <= 1)
|
{
|
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;
|
}
|
///查询是否已经存在主播放;
|
var host_Music_If = playList1.Find((c) => c.ServerClientType == 1);
|
if (host_Music_If == null)
|
{
|
var playList2 = new List<A31MusicModel>();
|
for (int i = 0; i < playList1.Count; i++)
|
{
|
var musics = playList1[i];
|
if (musics.A31PlayStatus.status == "play")
|
{
|
playList2.Add(musics);
|
}
|
}
|
|
if (playList2.Count == 0)
|
{
|
SelectedPlayerView(dialog, playList1, playList1);
|
}
|
else if (playList2.Count == 1)
|
{
|
//只有一个播放器在播放,默认为主播发器;
|
dialog.Close();
|
var player = playList2[0];
|
MergeThreading(player, playList1);
|
}
|
else
|
{
|
SelectedPlayerView(dialog, playList1, playList2);
|
}
|
}
|
else
|
{
|
dialog.Close();
|
MergeThreading(host_Music_If, playList1);
|
}
|
};
|
}
|
/// <summary>
|
/// 选中某个音乐为主播放器的界面
|
/// </summary>
|
/// <param name="musicList1">显示将要组合的播放器列表</param>
|
/// /// <param name="musicList2">显示在播放音乐播放器列表</param>
|
void SelectedPlayerView(Dialog dialogF, List<A31MusicModel> musicList1, List<A31MusicModel> musicList2)
|
{
|
#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 = MusicColor.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 = MusicColor.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 = MusicColor.TextColor,
|
TextSize = TextSize.Text16,
|
TextAlignment = TextAlignment.Center,
|
TextID = StringId.readyPlay,
|
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 = MusicColor.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);
|
//记录选中状态
|
Button selectedBtn = new Button() { Name = "No" };
|
for (int i = 0; i < musicList2.Count; i++)
|
{
|
var player = musicList2[i];
|
RowLayout addFlieRow = new RowLayout
|
{
|
Height = Application.GetRealHeight(50),
|
LineColor = MusicColor.WhiteColor,
|
};
|
verticalScrolViewLayout.AddChidren(addFlieRow);
|
|
if (player.A31PlayStatus.status == "play")
|
{
|
Button songNameBtn = new Button
|
{
|
X = Application.GetRealWidth(20),
|
Y = Application.GetRealHeight(15),
|
Width = Application.GetRealWidth(150),
|
Height = Application.GetRealHeight(20),
|
TextColor = MusicColor.TextColor,
|
TextSize = TextSize.Text14,
|
TextAlignment = TextAlignment.CenterLeft,
|
Text = player.A31PlayStatus.Title,
|
};
|
addFlieRow.AddChidren(songNameBtn);
|
|
var wText = songNameBtn.GetTextWidth();//获取文本宽度
|
if (wText >Application.GetRealWidth(220))
|
{
|
songNameBtn.Width = Application.GetRealWidth(220);
|
}
|
else
|
{
|
songNameBtn.Width = wText + Application.GetRealWidth(15);
|
}
|
//歌手控件
|
Button singerBtn = new Button
|
{
|
X = songNameBtn.Right,
|
Y = Application.GetRealHeight(15),
|
Width = Application.GetRealWidth(220)- wText,
|
Height = Application.GetRealHeight(20),
|
TextColor = MusicColor.MusicNoTxetColor,
|
TextSize = TextSize.Text12,
|
TextAlignment = TextAlignment.CenterLeft,
|
Text = "-" + player.A31PlayStatus.Artist.Trim(),
|
};
|
addFlieRow.AddChidren(singerBtn);
|
}
|
else
|
{
|
//播放器名称控件
|
Button PlayNameBtn = new Button
|
{
|
X = Application.GetRealWidth(20),
|
Y = Application.GetRealHeight(15),
|
Width = Application.GetRealWidth(150),
|
Height = Application.GetRealHeight(20),
|
TextColor = MusicColor.TextColor,
|
TextSize = TextSize.Text14,
|
TextAlignment = TextAlignment.CenterLeft,
|
Text = NamePlayer(player),
|
};
|
addFlieRow.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",
|
Tag = player,
|
};
|
addFlieRow.AddChidren(selectedIconBtn);
|
///加大几点范围
|
Button clickBtn = new Button
|
{
|
Height = Application.GetRealHeight(50),
|
};
|
addFlieRow.AddChidren(clickBtn);
|
clickBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
selectedBtn.IsSelected = false;
|
selectedBtn = selectedIconBtn;
|
selectedBtn.Name = "Yes";
|
selectedBtn.IsSelected = true;
|
};
|
//线
|
Button lineBtn = new Button
|
{
|
Y = addFlieRow.Height - 1,
|
X = Application.GetRealWidth(20),
|
Width = Application.GetRealWidth(304),
|
Height = 1,
|
BackgroundColor = MusicColor.LineColor,
|
};
|
addFlieRow.AddChidren(lineBtn);
|
}
|
#endregion
|
confirmBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
if (selectedBtn.Name.ToString() == "No")
|
{
|
new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.noSelectedPlay), false);
|
return;
|
}
|
dialogF.Close();
|
dialog.Close();
|
|
var serverMusic = selectedBtn.Tag as A31MusicModel;
|
MergeThreading(serverMusic, musicList1);
|
};
|
|
}
|
/// <summary>
|
/// 选中解除组合的播放器的界面
|
/// </summary>
|
public void DetachPlayMergence(A31MusicModel a31player)
|
{
|
|
#region
|
//主控件
|
Dialog dialog = new Dialog()
|
{
|
BackgroundColor = MusicColor.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 = MusicColor.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 = MusicColor.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 = MusicColor.TextColor,
|
TextSize = TextSize.Text16,
|
TextAlignment = TextAlignment.Center,
|
TextID = StringId.checkTheReleasePlayer,
|
//Text = "选中解除播放器",
|
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 = MusicColor.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 = MusicColor.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 = MusicColor.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 = MusicColor.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 MergeThreading(A31MusicModel serverMusic, List<A31MusicModel> musicList1)
|
{
|
A31MusicModel mainModel = null;
|
bool mainModelCollection = false;
|
MusicMain.loading.Start(Language.StringByID(StringId.inConfiguration));
|
bool _if = false;
|
System.Threading.Tasks.Task.Run(() =>
|
{
|
try
|
{
|
var statusEx = SendMethod.OpenWeb("http://" + serverMusic.IPAddress + "/httpapi.asp?command=getStatusEx");
|
if (statusEx == null)
|
{
|
statusEx = SendMethod.OpenWeb("http://" + serverMusic.IPAddress + "/httpapi.asp?command=getStatusEx");
|
}
|
if (statusEx == null)
|
{
|
return;
|
}
|
var serverIfon = Newtonsoft.Json.JsonConvert.DeserializeObject<A31Wifi>(statusEx);
|
if (serverIfon == null)
|
{
|
return;
|
}
|
string ssid = "";
|
foreach (var b in serverIfon.ssid)
|
{
|
ssid += System.Convert.ToString(b, 16).ToUpper().Length < 2 ? "0" + System.Convert.ToString(b, 16).ToUpper() : System.Convert.ToString(b, 16).ToUpper();
|
}
|
System.Threading.Thread.Sleep(1000);
|
for (int i = 0; i < musicList1.Count; i++)
|
{
|
var clientMusic = musicList1[i];
|
if (clientMusic.UniqueDeviceName == serverMusic.UniqueDeviceName)
|
{
|
//过滤掉主播放器;
|
continue;
|
}
|
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))
|
{
|
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))
|
{
|
|
}
|
}
|
System.Threading.Thread.Sleep(1000);//等待1秒再发数据
|
}
|
DateTime dateTime = DateTime.Now;
|
while ((DateTime.Now - dateTime).TotalMilliseconds < 15 * 1000)
|
{
|
System.Threading.Thread.Sleep(1000);
|
try
|
{
|
var result = SendMethod.OpenWeb("http://" + serverMusic.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 != null && tmepSlaves.slave_list.Count != 0)
|
{
|
string str = serverMusic.Name;
|
for (int j = 0; j < A31MusicModel.A31MusicModelList.Count; j++)
|
{
|
var music = A31MusicModel.A31MusicModelList[j];
|
if(music.collection && !mainModelCollection)
|
{
|
mainModelCollection = true;
|
}
|
if (music.UniqueDeviceName == serverMusic.UniqueDeviceName)
|
{
|
music.ServerClientType = 1;
|
mainModel = music;
|
music.Slave = tmepSlaves;
|
//过滤掉主播放器;
|
continue;
|
}
|
var slave_Ifon = tmepSlaves.slave_list.Find((obj) => obj.uuid.Replace("uuid:", "") == music.UniqueDeviceName);
|
if (null != slave_Ifon)
|
{
|
str = str + "+" + slave_Ifon.name;
|
//已经添加成功
|
music.ServerClientType = -1;
|
music.IsCanShow = false;
|
music.IsOnLine = false;
|
music.IPAddress = slave_Ifon.ip;
|
music.MainPlayIP = serverMusic.IPAddress;
|
_if = true;
|
}
|
}
|
serverMusic.MainPlayName = str;
|
foreach(var music in A31MusicModel.A31MusicModelList)
|
{
|
if(music.ServerClientType == 1)
|
{
|
music.MainPlayCollection = mainModelCollection;
|
}
|
}
|
A31MusicModel.Save();
|
break;
|
}
|
}
|
}
|
catch { }
|
}
|
}
|
catch { }
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
MusicMain.loading.Hide();
|
///可以提示配置失败;
|
if (_if)
|
{
|
//配置成功才可以刷新界面
|
MainPage.BasePageView.RemoveViewByTag("MusicMain");
|
var musicMain = new MusicMain();
|
MainPage.BasePageView.AddChidren(musicMain);
|
musicMain.Show();
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
}
|
});
|
}
|
});
|
|
}
|
/// <summary>
|
/// 解除组合命令逻辑处理的方法
|
/// </summary>
|
/// <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; //表示是否显示解除的播放
|
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
|
{
|
//解散组的命令
|
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;//解除主从关系
|
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;//解除主从关系
|
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;//解除主从关系
|
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;//解除成功
|
A31MusicModel.Save();
|
break;
|
}
|
}
|
|
}
|
catch { }
|
}
|
}
|
catch { }
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
MusicMain.loading.Hide();
|
///可以提示解除失败;
|
if (_if)
|
{
|
//解除成功才可以刷新界面
|
MainPage.BasePageView.RemoveViewByTag("MusicMain");
|
var musicMain = new MusicMain();
|
MainPage.BasePageView.AddChidren(musicMain);
|
musicMain.Show();
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
}
|
});
|
}
|
});
|
|
}
|
/// <summary>
|
/// 播放器名称
|
/// </summary>
|
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;//现在的音量
|
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();
|
volumedialog.Show();
|
//父控件
|
FrameLayout frame = new FrameLayout { };
|
volumedialog.AddChidren(frame);
|
//白色快父控件
|
FrameLayout dialogFra = new FrameLayout()
|
{
|
X = Application.GetRealWidth(16),
|
Y = Application.GetRealHeight(397-20),
|
Width = Application.GetRealWidth(344),
|
Height = Application.GetRealHeight(250+20),
|
BackgroundColor = MusicColor.WhiteColor,
|
Radius = (uint)Application.GetRealHeight(12),
|
};
|
frame.AddChidren(dialogFra);
|
#region 确认 取消
|
//显示头部信息父控件
|
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 = MusicColor.MusicNoTxetColor,
|
TextSize = TextSize.Text14,
|
};
|
topFra.AddChidren(cancelnBtn);
|
//标题控件
|
Button txetBtn = new Button
|
{
|
X = cancelnBtn.Right + Application.GetRealWidth(20),
|
Y = Application.GetRealHeight(14),
|
Width = Application.GetRealWidth(152),
|
Height = Application.GetRealHeight(22),
|
TextColor = MusicColor.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 = MusicColor.SelectedColor,
|
TextSize = TextSize.Text14,
|
};
|
topFra.AddChidren(confirmBtn);
|
|
EventHandler<MouseEventArgs> eventHandler= (sen,e) => {
|
volumedialog.Close();
|
if (updateVolumeThread != null)
|
{
|
try
|
{
|
if (updateVolumeThread.IsAlive)
|
{
|
updateVolumeThread.Abort();
|
}
|
}
|
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 = MusicColor.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 = MusicColor.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 = MusicColor.MusicNoTxetColor,
|
TextSize = TextSize.Text12,
|
TextAlignment = TextAlignment.CenterLeft,
|
Text = totalVolSeekBar.Progress.ToString() + "%",
|
};
|
totalVolumeFra.AddChidren(totalVolumeValueBtn);
|
#endregion
|
|
VerticalScrolViewLayout volumeViewLayout = new VerticalScrolViewLayout
|
{
|
Y =Application.GetRealHeight(58+64),
|
Height = dialogFra.Height - Application.GetRealHeight(58+64),
|
Width = Application.GetRealWidth(343),
|
};
|
dialogFra.AddChidren(volumeViewLayout);
|
|
for (int i = 0; i < volumePlayList.Count; i++)
|
{
|
var player = volumePlayList[i];
|
#region 调节当个播放器View
|
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 = MusicColor.MusicNoTxetColor,
|
TextSize = TextSize.Text10,
|
TextAlignment = TextAlignment.CenterLeft,
|
Text = player.Name + Language.StringByID(StringId.volumeMusic),
|
|
};
|
volumeFra.AddChidren(volumeTextBtn);
|
|
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 = MusicColor.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+15),
|
Height = Application.GetRealHeight(17),
|
TextColor = MusicColor.MusicNoTxetColor,
|
TextSize = TextSize.Text12,
|
TextAlignment = TextAlignment.CenterLeft,
|
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_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
|
|
}
|
/// <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)
|
{
|
continue;
|
}
|
startVolume = endVolume;
|
if (if_volume == "totalVolume")
|
{
|
for (int j = 0; j < volumePlayList.Count; j++)
|
{
|
var music = volumePlayList[j];
|
//每个500毫秒发从播放器音量命令
|
SendMethod.ControlVolume(endVolume, music);
|
System.Threading.Thread.Sleep(1000);
|
|
}
|
}
|
else if(if_volume == "Volume")
|
{
|
if (currVolumePlay == null)
|
{
|
continue;
|
}
|
SendMethod.ControlVolume(endVolume, currVolumePlay);
|
}
|
|
|
}
|
}
|
catch { }
|
})
|
{ IsBackground = true };
|
updateVolumeThread.Start();
|
}
|
|
}
|
[System.Serializable]
|
public class A31Wifi
{
|
public string ssid;
public string WifiChannel;
public string uuid;
public string eth2;
public string ra0;
public string upnp_uuid;
|
public string firmware;
|
public string language;
|
public string MAC;
|
public string Release;
|
public string psk;
|
public string SSIDStrategy;
|
public string netstat;
|
public string apcli0;
|
}
|
|
|
}
|