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/A31PlayMusicPage.cs |  326 +++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 259 insertions(+), 67 deletions(-)

diff --git a/HDL_ON/UI/Music/A31PlayMusicPage.cs b/HDL_ON/UI/Music/A31PlayMusicPage.cs
index 23465d6..b5c0cbe 100644
--- a/HDL_ON/UI/Music/A31PlayMusicPage.cs
+++ b/HDL_ON/UI/Music/A31PlayMusicPage.cs
@@ -14,10 +14,22 @@
         public override void RemoveFromParent()
         {
             base.RemoveFromParent();
-            timerThread?.Abort();
             Volume.VolumeChange = null;
+            if (timerThread != null)
+            {
+                try
+                {
+                    if (timerThread.IsAlive)
+                    {
+                        timerThread.Abort();
+                    }
+                }
+                catch { }
+            }
+
         }
         View.PlayView playView = new View.PlayView();
+      
         public void Show()
         {
             ///1绉掑畾鏃舵洿鏂扮姸鎬�
@@ -51,6 +63,35 @@
             playView.viewFrameLayout(middLayout);
             #endregion
 
+
+            ///鍒囨崲鎾斁妯″紡鐐瑰嚮浜嬩欢;
+            playView.playOrderBtn.MouseUpEventHandler += (sender, e) =>
+             {
+                 string msg = Language.StringByID(StringId.switchTo);
+                 switch (A31MusicModel.Current.A31PlayStatus.loop)
+                 {
+                     //0鍒楄〃寰幆锛�1鍗曟洸寰幆锛�2闅忔満鎾斁;
+                     case "0":
+                         A31MusicModel.Current.A31PlayStatus.loop = "1";
+                         playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/single.png";
+                         msg += Language.StringByID(StringId.singleMode);
+                         break;
+
+                     case "1":
+                         A31MusicModel.Current.A31PlayStatus.loop = "2";
+                         playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/random.png";
+                         msg += Language.StringByID(StringId.randomMode);
+                         break;
+                     case "2":
+                         A31MusicModel.Current.A31PlayStatus.loop = "0";
+                         playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/list.png";
+                         msg += Language.StringByID(StringId.listMode);
+                         break;
+                 }
+                 new PublicAssmebly().TipMsgAutoClose(msg, false,1000);
+                 string url = "http://" + A31MusicModel.Current.IPAddress + "/httpapi.asp?command=setPlayerCmd:" + "loopmode:" + A31MusicModel.Current.A31PlayStatus.loop;
+                 SendMethod.SendCommand(url);
+             };
             ///娣诲姞鍠滅埍鐐瑰嚮浜嬩欢;
             playView.loveBtn.MouseUpEventHandler += (sender, e) =>
             {
@@ -64,17 +105,17 @@
                     playView.loveBtn.IsSelected = !playView.loveBtn.IsSelected;
                     if (playView.loveBtn.IsSelected)
                     {
-                        if (null == A31MusicModel.Current.CnLoveRadioInfoList.Find((musicInfo) =>
+                        if (null == A31MusicModel.Current.LoveRadioInfoList.Find((musicInfo) =>
                         {
                             return url == musicInfo.URL;
                         }))
                         {
-                            A31MusicModel.Current.CnLoveRadioInfoList.Add(new MusicInfo { Title = song, URL = url, });
+                            A31MusicModel.Current.LoveRadioInfoList.Add(new MusicInfo { Title = song, URL = url, });
                         }
                     }
                     else
                     {
-                        A31MusicModel.Current.CnLoveRadioInfoList.RemoveAll((musicInfo) =>
+                        A31MusicModel.Current.LoveRadioInfoList.RemoveAll((musicInfo) =>
                         {
                             return url == musicInfo.URL;
                         });
@@ -104,40 +145,7 @@
 
                 }
                 A31MusicModel.Save();
-
-                ////淇濆瓨
-                //string saveRoomUIName = "A31_" + A31MusicModel.Current.IPAddress;
-                //Shared.IO.FileUtils.WriteFileByBytes(saveRoomUIName,
-                //Shared.SimpleControl.CommonPage.MyEncodingUTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(A31MusicModel.Current)));
             };
-            ///鍒囨崲鎾斁妯″紡鐐瑰嚮浜嬩欢;
-            playView.playOrderBtn.MouseUpEventHandler += (sender, e) =>
-             {
-                 string msg = Language.StringByID(StringId.switchTo);
-                 switch (A31MusicModel.Current.A31PlayStatus.loop)
-                 {
-                     //0鍒楄〃寰幆锛�1鍗曟洸寰幆锛�2闅忔満鎾斁;
-                     case "0":
-                         A31MusicModel.Current.A31PlayStatus.loop = "1";
-                         playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/single.png";
-                         msg += Language.StringByID(StringId.singleMode);
-                         break;
-
-                     case "1":
-                         A31MusicModel.Current.A31PlayStatus.loop = "2";
-                         playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/random.png";
-                         msg += Language.StringByID(StringId.randomMode);
-                         break;
-                     case "2":
-                         A31MusicModel.Current.A31PlayStatus.loop = "0";
-                         playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/list.png";
-                         msg += Language.StringByID(StringId.listMode);
-                         break;
-                 }
-                 new PublicAssmebly().TipMsgAutoClose(msg, false);
-                 string url = "http://" + A31MusicModel.Current.IPAddress + "/httpapi.asp?command=setPlayerCmd:" + "loopmode:" + A31MusicModel.Current.A31PlayStatus.loop;
-                 SendMethod.SendCommand(url);
-             };
             ///鎴戠殑鍒楄〃鐐瑰嚮浜嬩欢
             playView.playlistBtn.MouseUpEventHandler += (sender, e) =>
             {
@@ -156,7 +164,7 @@
                     Width = Application.GetRealWidth(344),
                     Height = Application.GetRealHeight(460),
                     BackgroundColor = Color.WhiteColor,
-                    Radius=(uint)Application.GetRealHeight(12),
+                    Radius = (uint)Application.GetRealHeight(12),
                 };
                 popFra.AddChidren(dialogFra);
                 dialogFra.AddChidren(loading);//dialogFra鍒锋柊鍥炬爣鐖舵帶浠�
@@ -210,7 +218,7 @@
                     Y = Application.GetRealHeight(15),
                     Width = Application.GetRealWidth(28 + 12),//28
                     Height = Application.GetRealHeight(20),
-                    TextID =StringId.cancelMusic,
+                    TextID = StringId.cancelMusic,
                     TextColor = Color.MusicNoTxetColor,
                     TextSize = TextSize.Text14,
                     TextAlignment = TextAlignment.CenterLeft,
@@ -234,11 +242,20 @@
                 ///绉婚櫎鐣岄潰
                 EventHandler<MouseEventArgs> removeFromParentView = (sen, e1) =>
                  {
-                     if (updateSelectedMusicThread != null && updateSelectedMusicThread.IsAlive)
+                   
+                     if (updateSelectedMusicThread != null)
                      {
-                         updateSelectedMusicThread.Abort();
-                         ///鍏抽棴绾跨▼
+                         try
+                         {
+                             if (updateSelectedMusicThread.IsAlive)
+                             {
+                                 updateSelectedMusicThread.Abort();
+                                 ///鍏抽棴绾跨▼
+                             }
+                         }
+                         catch { }
                      }
+
                      popFra.RemoveFromParent();
                  };
                 backIextBtn.MouseUpEventHandler += removeFromParentView;
@@ -261,7 +278,7 @@
                             A31MusicModel.Current.CurrentPlayMusicInfoList = new List<MusicInfo>();
                             return;
                         }
-                        var playString = SendMethod.GetCurrentPlayList();
+                        var playString = SendMethod.GetCurrentPlayList(A31MusicModel.Current);
                         A31MusicModel.Current.CurrentPlayMusicInfoList = new List<MusicInfo>();
                         var se = System.Security.SecurityElement.FromString(playString);
                         while (se.Children != null)
@@ -313,13 +330,31 @@
                 });
 
             };
+            ///闊抽噺鍥炬爣鐐瑰嚮浜嬩欢
+            playView.volIconBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                if (A31MusicModel.Current.ServerClientType == 1 && A31MusicModel.Current.Slave.slave_list.Count != 0)
+                { ///涓绘挱鏀惧櫒
+                   //new View.DialogView { }.PlayerVolumeView(A31MusicModel.Current);
 
+                    var volumeView = new View.DialogView { };
+                    volumeView.PlayerVolumeView(A31MusicModel.Current);
+                    volumeView.UpdateVolume();
+
+                }
+            };
             ///闊抽噺杩涘害鏉$偣鍑讳簨浠�
+            int startVolume =0;//涔嬪墠鐨勯煶閲�
+            //int endVolume = 0;//鐜板湪鐨勯煶閲�
             EventHandler<int> progressClick = (sender, e) =>
             {
                 playView.volValueBtn.Text = playView.volSeekBar.Progress + "%";
-                A31MusicModel.Current.ControlVolume(playView.volSeekBar.Progress);
-                A31MusicModel.Current.A31PlayStatus.vol = playView.volSeekBar.Progress.ToString();
+                if (startVolume != e)
+                {
+                    startVolume = e;
+                    SendMethod.ControlVolume(e, A31MusicModel.Current);
+                    A31MusicModel.Current.A31PlayStatus.vol = e.ToString();
+                }
             };
             playView.volSeekBar.OnProgressChangedEvent += progressClick;
             playView.volSeekBar.OnStopTrackingTouchEvent += progressClick;
@@ -327,25 +362,25 @@
             playView.prevBtn.MouseDownEventHandler += (sender, e) =>
             {
                 playView.prevBtn.IsSelected = true;
-                SendMethod.Previous();
+                SendMethod.Previous(A31MusicModel.Current);
             };
             playView.prevBtn.MouseUpEventHandler += (sender, e) =>
             {
                 playView.prevBtn.IsSelected = false;
-            };
+            }; 
             ///鏆傚仠/鎾斁鐐瑰嚮浜嬩欢
             playView.playBtn.MouseDownEventHandler += (sender, e) =>
             {
                 if (playView.playBtn.IsSelected)
                 {
                     playView.playBtn.IsSelected = false;
-                    SendMethod.Pause();
+                    SendMethod.Pause(A31MusicModel.Current);
                     A31MusicModel.Current.A31PlayStatus.status = "pause";
                 }
                 else
                 {
                     playView.playBtn.IsSelected = true;
-                    SendMethod.Play();
+                    SendMethod.Play(A31MusicModel.Current);
                     A31MusicModel.Current.A31PlayStatus.status = "play";
                 }
             };
@@ -353,7 +388,7 @@
             playView.nextBtn.MouseDownEventHandler += (sender, e) =>
             {
                 playView.nextBtn.IsSelected = true;
-                SendMethod.Next();
+                SendMethod.Next(A31MusicModel.Current);
             };
             playView.nextBtn.MouseUpEventHandler += (sender, e) =>
             {
@@ -367,12 +402,18 @@
                     return;
                 }
                 playView.volSeekBar.Progress = volume;
-                A31MusicModel.Current.ControlVolume(playView.volSeekBar.Progress);
-                A31MusicModel.Current.A31PlayStatus.vol = playView.volSeekBar.Progress.ToString();
+
+                if (startVolume != volume)
+                {
+                    startVolume = volume;
+                    SendMethod.ControlVolume(volume, A31MusicModel.Current);
+                    A31MusicModel.Current.A31PlayStatus.vol = volume.ToString();
+                }
+
             };
 
         }
-
+      
         System.Threading.Thread timerThread;
         /// <summary>
         /// 瀹氭椂鏇存柊鐘舵��
@@ -403,22 +444,21 @@
 
                             switch (A31MusicModel.Current.A31PlayStatus.loop)
                             {
-
+                                case "0"://鍒楄〃寰幆
+                                    playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/list.png";
+                                    break;
                                 case "1"://鍗曟洸椤虹幆
                                     playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/single.png";
                                     break;
                                 case "2"://闅忔満鎾斁
                                     playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/random.png";
                                     break;
-                                case "0"://鍒楄〃寰幆
-                                    playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/list.png";
-                                    break;
                             }
 
 
                             if (A31MusicModel.Current.A31PlayStatus.Source == "RADIO-NETWORK")
                             {
-                                var v = A31MusicModel.Current.CnLoveRadioInfoList.Find((like) =>
+                                var v = A31MusicModel.Current.LoveRadioInfoList.Find((like) =>
                                 {
                                     return like.URL == A31MusicModel.Current.A31PlayStatus.TrackURL;
                                 });
@@ -475,9 +515,8 @@
                             //鏇存柊鎾斁鍣ㄩ煶閲忕粰绯荤粺闊抽噺
                             Volume.MusicVolume = playView.volSeekBar.Progress;
                             //褰撳墠鎾斁闊充箰鏃堕棿        
-                            int playSecond = int.Parse(A31MusicModel.Current.A31PlayStatus.curpos) / 1000;// + (int)(DateTime.Now - A31MusicModel.Current.LastDateTime).TotalSeconds;
-                                                                                                          //currentMusiceA31.musicPalyTime = (playSecond*10).ToString();
-                                                                                                          //鍒嗛挓
+                            int playSecond = int.Parse(A31MusicModel.Current.A31PlayStatus.curpos) / 1000 + (int)(DateTime.Now - A31MusicModel.Current.LastDateTime).TotalSeconds;
+
                             int playMusicMinute = playSecond / 60;
                             //绉掗挓
                             int playMusicSecond = playSecond % 60;
@@ -509,7 +548,8 @@
                             }
                             playView.songNameTextView.Text = (A31MusicModel.Current.A31PlayStatus.Title == null ? "Unkown" : A31MusicModel.Current.A31PlayStatus.Title);
                             playView.singerBtn.Text = (A31MusicModel.Current.A31PlayStatus.Artist == null ? "Unkown" : A31MusicModel.Current.A31PlayStatus.Artist.Trim());
-
+                            //鏇存柊婧愮殑鐣岄潰
+                            showSourcePage();
                         }
                         catch (Exception e)
                         {
@@ -521,6 +561,150 @@
             })
             { IsBackground = true };
             timerThread.Start();
+        }
+        /// <summary>
+        /// 鏇存柊涓嶅悓闊充箰婧愮晫闈㈠浘鏍囩姸鎬�
+        /// </summary>
+        void showSourcePage()
+        {
+            playView.loveBtn.Alpha = 1;
+            playView.loveBtn.Enable = true;
+
+            playView.playlistBtn.Alpha = 1;
+            playView.playlistBtn.Enable = true;
+
+            playView.prevBtn.Alpha = 1;
+            playView.prevBtn.Enable = true;
+
+            playView.nextBtn.Alpha = 1;
+            playView.nextBtn.Enable = true;
+
+            playView.playOrderBtn.Alpha = 1;
+            playView.playOrderBtn.Enable = true;
+
+            //btnPlay.Alpha = 1;
+            //btnPlay.Enable = true;
+
+            playView.volSeekBar.IsClickable = true;
+
+            switch (A31MusicModel.Current.A31PlayStatus.Source)
+            {
+
+                case "QPLAY"://QQ闊充箰
+                    //currentsource.UnSelectedImagePath = "MusicIcon/qqmusic1.png";
+                    playView.loveBtn.Alpha = 0.5f;
+                    playView.loveBtn.Enable = false;
+                    break;
+                case "AIRPLAY"://閰风嫍闊充箰
+                    //currentsource.UnSelectedImagePath = "MusicIcon/kumusic.png";
+                    playView.loveBtn.Alpha = 0.5f;
+                    playView.loveBtn.Enable = false;
+                    playView.volSeekBar.IsClickable = false;
+                    break;
+                case "SONGLIST-NETWORK"://鏈湴闊充箰
+                    //currentsource.UnSelectedImagePath = "MusicIcon/musicMusic1.png";
+                    break;
+                case "SONGLIST-LOCAL"://USB
+                    //currentsource.UnSelectedImagePath = "MusicIcon/USB1.png";
+                    break;
+                case "RADIO-NETWORK"://鍦ㄧ嚎鐢靛彴
+                    //currentsource.UnSelectedImagePath = "MusicIcon/local1.png";
+                    playView.playlistBtn.Alpha = 1;
+                    playView.playlistBtn.Enable = true;
+
+                    playView.prevBtn.Alpha = 0.5f;
+                    playView.prevBtn.Enable = false;
+
+                    playView.nextBtn.Alpha = 0.5f;
+                    playView.nextBtn.Enable = false;
+
+                    playView.playOrderBtn.Alpha = 0.5f;
+                    playView.playOrderBtn.Enable = false;
+                    break;
+
+                case "STATION-NETWORK"://Pandora鐢靛彴
+                    playView.volSeekBar.IsClickable = false;
+                    //currentsource.UnSelectedImagePath = "MusicIcon/pandora1.png";
+                    playView.loveBtn.Alpha = 0.5f;
+                    playView.loveBtn.Enable = false;
+
+                    playView.prevBtn.Alpha = 0.5f;
+                    playView.prevBtn.Enable = false;
+
+                    playView.playOrderBtn.Alpha = 0.5f;
+                    playView.playOrderBtn.Enable = false;
+                    break;
+
+                case "BLUETOOTH"://钃濈墮
+                   // currentsource.UnSelectedImagePath = "MusicIcon/bluetooth1.png";
+                    playView.loveBtn.Alpha = 0.5f;
+                    playView.loveBtn.Enable = false;
+
+                    playView.playlistBtn.Alpha = 0.5f;
+                    playView.playlistBtn.Enable = false;
+
+                    playView.prevBtn.Alpha = 0.5f;
+                    playView.prevBtn.Enable = false;
+
+                    playView.nextBtn.Alpha = 0.5f;
+                    playView.nextBtn.Enable = false;
+
+                    playView.playOrderBtn.Alpha = 0.5f;
+                    playView.playOrderBtn.Enable = false;
+
+                    //btnPlay.Alpha = 0.5f;
+                    //btnPlay.Enable = false;
+                    break;
+
+
+                case "LINE-IN"://绾胯矾杈撳叆
+                    // currentsource.UnSelectedImagePath = "MusicIcon/muiscline1.png";
+                    playView.loveBtn.Alpha = 0.5f;
+                    playView.loveBtn.Enable = false;
+
+                    playView.playlistBtn.Alpha = 0.5f;
+                    playView.playlistBtn.Enable = false;
+
+                    playView.prevBtn.Alpha = 0.5f;
+                    playView.prevBtn.Enable = false;
+
+                    playView.nextBtn.Alpha = 0.5f;
+                    playView.nextBtn.Enable = false;
+
+                    playView.playOrderBtn.Alpha = 0.5f;
+                    playView.playOrderBtn.Enable = false;
+
+                    //btnPlay.Alpha = 0.5f;
+                    //btnPlay.Enable = false;
+                    break;
+
+                default:
+                    //currentsource.UnSelectedImagePath = "MusicIcon/dlna.png";
+                    playView.volSeekBar.IsClickable = false;
+                    playView.loveBtn.Alpha = 0.5f;
+                    playView.loveBtn.Enable = false;
+
+                    playView.playlistBtn.Alpha = 0.5f;
+                    playView.playlistBtn.Enable = false;
+
+                    playView.prevBtn.Alpha = 0.5f;
+                    playView.prevBtn.Enable = false;
+
+                    playView.nextBtn.Alpha = 0.5f;
+                    playView.nextBtn.Enable = false;
+
+                    playView.playOrderBtn.Alpha = 0.5f;
+                    playView.playOrderBtn.Enable = false;
+                    break;
+            }
+            //if (A31MusicModel.Current.A31PlayStatus.playSource == "UPnPServer")
+            //{
+            //    currentsource.UnSelectedImagePath = "MusicIcon/dlna.png";
+            //}
+            //else if (A31MusicModel.Current.A31PlayStatus.playSource == "Tidal")
+            //{
+            //    currentsource.UnSelectedImagePath = "MusicIcon/Tidal1.png";
+            //}
         }
         /// <summary>
         /// 鏄剧ず褰撳墠鎾斁闊充箰View
@@ -622,10 +806,17 @@
                 ///鐐瑰嚮鎾斁浜嬩欢
                 clickBtn.MouseUpEventHandler += (sender, e) =>
                 {
-                    if (updateSelectedMusicThread != null && updateSelectedMusicThread.IsAlive)
+                    if (updateSelectedMusicThread != null)
                     {
-                        updateSelectedMusicThread.Abort();
-                        ///鍏抽棴绾跨▼
+                        try
+                        {
+                            if (updateSelectedMusicThread.IsAlive)
+                            {
+                                updateSelectedMusicThread.Abort();
+                                ///鍏抽棴绾跨▼
+                            }
+                        }
+                        catch { }
                     }
                     System.Threading.Tasks.Task.Run(() =>
                     {
@@ -637,7 +828,7 @@
                             A31MusicModel.Current.A31PlayStatus.Title = songBtn.Text;
                             System.Threading.Tasks.Task.Run(() =>
                             {
-                                SendMethod.ListMusicPlay(playListName, clickBtn.Tag);
+                                SendMethod.ListMusicPlay(playListName, clickBtn.Tag, A31MusicModel.Current);
                             });
                         });
                     });
@@ -691,7 +882,8 @@
 
                     });
                 }
-            });
+            })
+            { IsBackground = true };
             updateSelectedMusicThread.Start();
         }
     }

--
Gitblit v1.8.0