陈嘉乐
2020-06-05 f432344ed815e5b6b88ab42bcee50b45e664472e
2020-06-05-01

多个播放器组合,音量控制
14个文件已修改
257 ■■■■ 已修改文件
.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/UserPrefs.xml 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/sqlite3/storage.ide 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/Music/A31PlayMusicPage.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/Music/MusicMain.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/Music/SendMethod.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/Music/View/DialogView.cs 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/Music/View/MusicView.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.DS_Store
Binary files differ
.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -1,13 +1,12 @@
<Properties StartupConfiguration="{09712674-2A38-407B-B1E2-560B2C352F9A}|Default">
  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/Music/A31LoveMusicList.cs">
  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/Music/View/MusicView.cs">
    <Files>
      <File FileName="HDL_ON/UI/Music/SendMethod.cs" Line="185" Column="1" />
      <File FileName="../旧版本Music/MyMusic.cs" Line="1412" Column="1" />
      <File FileName="HDL_ON/UI/Music/A31MusicModel.cs" Line="154" Column="1" />
      <File FileName="HDL_ON/UI/Music/MusicMain.cs" Line="294" Column="84" />
      <File FileName="HDL_ON/UI/Music/View/DialogView.cs" Line="561" Column="42" />
      <File FileName="HDL_ON/UI/Music/A31PlayStatus.cs" Line="1" Column="1" />
      <File FileName="HDL_ON/UI/Music/A31LoveMusicList.cs" Line="23" Column="1" />
      <File FileName="HDL_ON/UI/Music/View/DialogView.cs" Line="1290" Column="66" />
      <File FileName="HDL_ON/UI/Music/MusicMain.cs" Line="219" Column="28" />
      <File FileName="HDL_ON/UI/Music/SendMethod.cs" Line="150" Column="49" />
      <File FileName="HDL_ON/UI/Music/A31MusicModel.cs" Line="217" Column="29" />
      <File FileName="HDL_ON/UI/Music/A31PlayMusicPage.cs" Line="384" Column="19" />
      <File FileName="HDL_ON/UI/Music/View/MusicView.cs" Line="24" Column="60" />
    </Files>
    <Pads>
      <Pad Id="ProjectPad">
@@ -18,8 +17,9 @@
              <Node name="Entity" expanded="True" />
              <Node name="UI" expanded="True">
                <Node name="Music" expanded="True">
                  <Node name="View" expanded="True" />
                  <Node name="A31LoveMusicList.cs" selected="True" />
                  <Node name="View" expanded="True">
                    <Node name="MusicView.cs" selected="True" />
                  </Node>
                </Node>
                <Node name="UI0-Public" expanded="True" />
                <Node name="UI2" expanded="True">
@@ -29,7 +29,9 @@
            </Node>
            <Node name="HDL-ON_Android" expanded="True">
              <Node name="Assets" expanded="True">
                <Node name="Phone" expanded="True" />
                <Node name="Phone" expanded="True">
                  <Node name="MusicIcon" expanded="True" />
                </Node>
              </Node>
            </Node>
          </Node>
.vs/HDL_APP_Project/xs/sqlite3/storage.ide
Binary files differ
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm
Binary files differ
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal
Binary files differ
HDL-ON_Android/.DS_Store
Binary files differ
HDL-ON_Android/Assets/.DS_Store
Binary files differ
HDL_ON/.DS_Store
Binary files differ
HDL_ON/UI/.DS_Store
Binary files differ
HDL_ON/UI/Music/A31PlayMusicPage.cs
@@ -313,6 +313,14 @@
                });
            };
            ///音量图标点击事件
            playView.volIconBtn.MouseUpEventHandler += (sender, e) =>
            {
                if (A31MusicModel.Current.ServerClientType == 1 && A31MusicModel.Current.Slave.slave_list.Count != 0)
                { ///主播放器
                    new View.DialogView { }.PlayerVolumeView(A31MusicModel.Current);
                }
            };
            ///音量进度条点击事件
            EventHandler<int> progressClick = (sender, e) =>
            {
@@ -331,7 +339,7 @@
            playView.prevBtn.MouseUpEventHandler += (sender, e) =>
            {
                playView.prevBtn.IsSelected = false;
            };
            };
            ///暂停/播放点击事件
            playView.playBtn.MouseDownEventHandler += (sender, e) =>
            {
HDL_ON/UI/Music/MusicMain.cs
@@ -106,7 +106,7 @@
                        if (obj == null)
                        {
                            ///这里要读取主从关系
                            //readServerOrClientMode();
                            readServerOrClientMode();
                            A31MusicModel.Save();
                            return;
                        }
@@ -360,7 +360,7 @@
                                        UniqueDeviceName = slave.uuid.Replace("uuid:", ""),
                                        Name = slave.name,
                                        IsCanShow = false,
                                        IsOnLine = false,
                                        IsOnLine = false,//true作用为了读取从播放器的音量
                                    });
                                }
                                //如果找到就更新为从的
@@ -372,7 +372,7 @@
                                    tempA31Player.Name = slave.name;
                                    tempA31Player.UniqueDeviceName = slave.uuid.Replace("uuid:", "");
                                    tempA31Player.IsCanShow = false;
                                    tempA31Player.IsOnLine = false;
                                    tempA31Player.IsOnLine = false;//true作用为了读取从播放器的音量
                                }
                            }
HDL_ON/UI/Music/SendMethod.cs
@@ -153,22 +153,17 @@
            try
            {
                if (a31MusicModel.ServerClientType == -1)
                if (a31MusicModel.ServerClientType == 1)
                {
                    var result = OpenWeb("http://" + a31MusicModel.MainPlayIP + "/httpapi.asp?command=multiroom:getSlaveList");
                    if (result != null)
                    var result = OpenWeb("http://" + a31MusicModel.IPAddress + "/httpapi.asp?command=multiroom:getSlaveList");
                    if (result != null && result != "Failed")
                    {
                        var slaves = Newtonsoft.Json.JsonConvert.DeserializeObject<Slaves>(result);
                        if (slaves != null && slaves.slave_list != null)
                        if (slaves != null && slaves.slave_list != null && slaves.slave_list.Count != 0)
                        {
                            var slave = slaves.slave_list.Find((obj) => obj.uuid.Replace("uuid:", "") == a31MusicModel.UniqueDeviceName);
                            if (slave != null)
                            {
                                a31MusicModel.A31PlayStatus.vol = slave.volume;
                            }
                            a31MusicModel.Slave = slaves;
                        }
                    }
                    return;
                }
                WebClient webClient = new WebClient();
HDL_ON/UI/Music/View/DialogView.cs
@@ -1136,7 +1136,205 @@
                return a31player.Name;
            }
        }
        /// <summary>
        /// 播放器音量的界面
        /// </summary>
        /// <param name="a31player">主播放器</param>
       public  void PlayerVolumeView(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(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) =>
            {
                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.readyPlay,
                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 = Color.SelectedColor,
                TextSize = TextSize.Text14,
            };
            topFra.AddChidren(confirmBtn);
            confirmBtn.MouseUpEventHandler += (sen, e) =>
            {
                dialog.Close();
            };
            VerticalScrolViewLayout verticalScrolViewLayout = new VerticalScrolViewLayout
            {
                Y = Application.GetRealHeight(58),
                Height = dialogFra.Height - Application.GetRealHeight(58),
                Width = Application.GetRealWidth(343),
            };
            dialogFra.AddChidren(verticalScrolViewLayout);
            var playList = new List<A31MusicModel>();
            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;
                    playList.Add(music_If);
                }
            }
            playList.Add(a31player);
            for (int i = 0; i < playList.Count; i++)
            {
                var player = playList[i];
                FrameLayout volumeFra = new FrameLayout
                {
                    Height = Application.GetRealHeight(64),
                };
                verticalScrolViewLayout.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 + "音量";
                }
                else if (player.ServerClientType == 1)
                {
                    volumeTextBtn.Text = "总音量";
                }
                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 (player.ServerClientType == -1)
                    {
                        valueBtn.Text = volSeekBar.Progress + "%";
                        SendMethod.ControlVolume(volSeekBar.Progress, player);
                    }
                    else if (player.ServerClientType == 1)
                    {
                        for (int j = 0; j < playList.Count; j++)
                        {
                            var music = playList[j];
                            var frameLayout = (FrameLayout)verticalScrolViewLayout.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
        }
    }
    [System.Serializable]
    public class A31Wifi
    {
HDL_ON/UI/Music/View/MusicView.cs
@@ -65,7 +65,7 @@
            TextID=StringId.merge,
            X = Application.GetRealWidth(214 + 33),
            Y = Application.GetRealHeight(18 + 4),
            Width = Application.GetRealWidth(24),
            Width = Application.GetRealWidth(24+3),
            Height = Application.GetRealHeight(17),
            TextColor = Color.TextColor,
            TextSize=TextSize.Text12,