From e2a009ca812c2f933e195c4276b79c34ed31862a Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期五, 17 十二月 2021 18:29:10 +0800
Subject: [PATCH] 2021-12-17-01

---
 HDL_ON/UI/UI2/FuntionControlView/Music/View/MyListView.cs    |    9 
 HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs                    |    2 
 HDL_ON/UI/UI2/1-HomePage/HomePage.cs                         |   81 +-
 HDL_ON/UI/UI2/FuntionControlView/Music/A31Radio.cs           |    8 
 HDL_ON/UI/UI2/FuntionControlView/Music/View/DialogView.cs    |    8 
 HDL_ON/HDL_ON.projitems                                      |   52 +-
 HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs         |  150 +++++
 HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs                      |   12 
 HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicSourcePage.cs |   59 ++
 HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs   |  271 ++++------
 HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicFileList.cs   |  115 ++++
 HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs      |    7 
 HDL_ON/UI/UI2/FuntionControlView/Music/A31LocalMusicList.cs  |    4 
 HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs   |    4 
 HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs     |   23 
 HDL_ON/UI/UI2/FuntionControlView/Music/A31USBMusicList.cs    |   15 
 HDL_ON/UI/UI2/FuntionControlView/Music/UpdateThread.cs       |   24 
 HDL_ON/UI/UI2/FuntionControlView/Music/A31MyList.cs          |    2 
 HDL_ON/UI/UI2/FuntionControlView/Music/A31LoveMusicList.cs   |    4 
 HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicModel.cs      |  104 +++
 HDL_ON/UI/UI2/FuntionControlView/Music/A31SongPlay.cs        |   81 +++
 HDL_ON/UI/UI2/FuntionControlView/Music/A31MyListMusic.cs     |    4 
 HDL_ON/DAL/Server/NewAPI.cs                                  |    6 
 HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs        |    2 
 HDL_ON/UI/UI2/FuntionControlView/Music/A31LoveList.cs        |    4 
 HDL_ON/UI/UI2/FuntionControlView/Music/A31RadioList.cs       |    4 
 HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs          |  384 +++++----------
 27 files changed, 852 insertions(+), 587 deletions(-)

diff --git a/HDL_ON/DAL/Server/NewAPI.cs b/HDL_ON/DAL/Server/NewAPI.cs
index 3314fee..d1d23bb 100644
--- a/HDL_ON/DAL/Server/NewAPI.cs
+++ b/HDL_ON/DAL/Server/NewAPI.cs
@@ -739,6 +739,12 @@
         /// </summary>
         public const string Api_Post_BindSourcePanel = "/home-wisdom/source/screen/home/bind";
 
+        #region  鈻�  -- 闊充箰鐩稿叧鎺ュ彛_______________________________
+        /// <summary>
+        /// 鑾峰彇闊充箰鍒楄〃
+        /// </summary>
+        public const string Api_Post_PlayerList = "/home-wisdom/app/wise/music/playerList";
+        #endregion
 
     }
 
diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems
index c4771f5..df27706 100644
--- a/HDL_ON/HDL_ON.projitems
+++ b/HDL_ON/HDL_ON.projitems
@@ -60,31 +60,6 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorSmokePage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorPirPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\ArmSensorHistroyPaging.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\MusicMain.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31Radio.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\UpdateThread.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31RadioList.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31MusicModel.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31MusicSourcePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31PlayMusicPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31LoveRadioList.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31LoveList.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31USBMusicList.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31PlayStatus.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31MyList.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\SendMethod.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31LocalMusicList.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31LoveMusicList.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31MyListMusic.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\DialogView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\TopView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\MusicView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\PlayView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\SizeClass.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\TipView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\MusicSourceView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\SongView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\MyListView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaFanPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\ClothesHangerPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\FanPage.cs" />
@@ -488,6 +463,33 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\SceneControlZone.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\CalculatedDistance.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmCenter\PushConfigPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\MusicMain.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31Radio.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\UpdateThread.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31RadioList.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31MusicModel.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31MusicSourcePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31PlayMusicPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31LoveRadioList.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31LoveList.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31USBMusicList.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31PlayStatus.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31MyList.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\SendMethod.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31LocalMusicList.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31LoveMusicList.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31MyListMusic.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\DialogView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\TopView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\MusicView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\PlayView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\SizeClass.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\TipView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\MusicSourceView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\SongView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\MyListView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31MusicFileList.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31SongPlay.cs" />
   </ItemGroup>
   <ItemGroup>
     <Folder Include="$(MSBuildThisFileDirectory)Entity\Device\" />
diff --git a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
index 7b59c9e..4bd6d82 100644
--- a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
+++ b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
@@ -125,7 +125,7 @@
                         break;
                     case SPK.MusicStandard:
                     case SPK.AvMusic:
-                        Music.A31MusicModel.Current = (function as Music.A31MusicModel);//褰撳墠鎾斁鍣�
+                        Music.A31MusicModel.Current.functionMusic =function;//褰撳墠鎾斁鍣�
                         var a31PlayMusicPage = new Music.A31PlayMusicPage();
                         MainPage.BasePageView.AddChidren(a31PlayMusicPage);
                         a31PlayMusicPage.Show();
diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
index 4d75015..477f128 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -807,29 +807,29 @@
                     if (SPK.MusicSpkList().Contains( function.spk))
                     {
                         //var music = function as Music.A31MusicModel;
-                        var music = Music.A31MusicModel.A31MusicModelList.Find((obj) => obj.sid == function.sid);
-                        if (music == null)
-                        {
-                            continue;
-                        }
-                        if (music.ServerClientType == -1)
-                        {
-                            continue;
-                        }
-                        else if (music.ServerClientType == 1)
-                        {
-                            if (!music.MainPlayCollection)
-                            {
-                                continue;
-                            }
-                        }
-                        else
-                        {
-                            if (!music.collect)
-                            {
-                                continue;
-                            }
-                        }
+                        //var music = Music.A31MusicModel.A31MusicModelList.Find((obj) => obj.sid == function.sid);
+                        //if (music == null)
+                        //{
+                        //    continue;
+                        //}
+                        //if (music.ServerClientType == -1)
+                        //{
+                        //    continue;
+                        //}
+                        //else if (music.ServerClientType == 1)
+                        //{
+                        //    if (!music.MainPlayCollection)
+                        //    {
+                        //        continue;
+                        //    }
+                        //}
+                        //else
+                        //{
+                        //    if (!music.collect)
+                        //    {
+                        //        continue;
+                        //    }
+                        //}
                     }
                     else
                     {
@@ -1148,8 +1148,8 @@
                         SelectedImagePath = "FunctionIcon/Music/MusicPlayOnIcon.png",
                     };
                     view.AddChidren(btnPower);
-                    var a31player = (function as UI.Music.A31MusicModel);
-                    btnState.Text = a31player.A31PlayStatus.Title;
+
+                    btnState.Text = function.GetAttrState("song_name");
 
                     btnState.SelectedTextColor = CSS_Color.MainBackgroundColor;
                     btnState.TextColor = CSS_Color.MainBackgroundColor;//PromptingColor1
@@ -1158,21 +1158,22 @@
 
                     btnPower.MouseUpEventHandler = (sender, e) =>
                     {
+
+                        string status = "off";
                         if (btnPower.IsSelected)
                         {
                             btnPower.IsSelected = false;
-                            Music.SendMethod.Pause(a31player);
-                            a31player.A31PlayStatus.status = "pause";
-                            a31player.trait_on_off.curValue = "off";
+                            status = "off";
                         }
                         else
                         {
                             btnPower.IsSelected = true;
-                            Music.SendMethod.Play(a31player);
-                            a31player.A31PlayStatus.status = "play";
-                            a31player.trait_on_off.curValue = "on";
+                            status = "on";
                         }
-                        UpdataFunctionStates(a31player);
+                       function.SetAttrState("on_off", status);
+                        Dictionary<string, string> dic = new Dictionary<string, string>();
+                        dic.Add("on_off", status);
+                        Music.SendMethod.sendMethod.SendControlCommand(function, dic);
                     };
                 }
 
@@ -1230,14 +1231,14 @@
                 //鍙栨秷鏀惰棌浜嬩欢
                 Action cannelCollect = () => {
                     function.collect = false;
-                    if (SPK.MusicSpkList().Contains(function.spk))//澶勭悊闊充箰涓讳粠鍏崇郴
-                    {
-                        if ((function as Music.A31MusicModel).ServerClientType == 1)
-                        {
-                            (function as Music.A31MusicModel).MainPlayCollection = false;
-                            Music.A31MusicModel.Save();
-                        }
-                    }
+                    //if (SPK.MusicSpkList().Contains(function.spk))//澶勭悊闊充箰涓讳粠鍏崇郴
+                    //{
+                    //    if ((function as Music.A31MusicModel).ServerClientType == 1)
+                    //    {
+                    //        (function as Music.A31MusicModel).MainPlayCollection = false;
+                    //        Music.A31MusicModel.Save();
+                    //    }
+                    //}
                     string msg = function.name + Language.StringByID(StringId.CollectionCancelled);
                     LoadDeviceFunctionControlZone();
                     function.CollectFunction();
diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
index 21ac7a8..9bec14b 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
@@ -244,11 +244,11 @@
                 function.collect = false;
                 if (SPK.MusicSpkList().Contains(function.spk))//澶勭悊闊充箰涓讳粠鍏崇郴
                 {
-                    if ((function as Music.A31MusicModel).ServerClientType == 1)
-                    {
-                        (function as Music.A31MusicModel).MainPlayCollection = false;
-                        Music.A31MusicModel.Save();
-                    }
+                    //if ((function as Music.A31MusicModel).ServerClientType == 1)
+                    //{
+                    //    (function as Music.A31MusicModel).MainPlayCollection = false;
+                    //    Music.A31MusicModel.Save();
+                    //}
                 }
                 string msg = function.name + Language.StringByID(StringId.CollectionCancelled);
                 LoadDeviceFunctionControlZone();
@@ -374,7 +374,7 @@
                                         {
                                             if (SPK.MusicSpkList().Contains(function.spk))
                                             {
-                                                btn.Text = (function as Music.A31MusicModel).A31PlayStatus.Title;
+                                                btn.Text =function.GetAttrState("song_name");
                                             }
                                             else
                                             {
diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs b/HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs
index 5a6a5d3..09b860a 100644
--- a/HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs
+++ b/HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs
@@ -156,12 +156,12 @@
                                     else if (SPK.MusicSpkList().Contains(updataFunction.spk))
                                     {
                                         #region 闊充箰鏇存柊
-                                        var uMusic = updataFunction as Music.A31MusicModel;
+                                        var uMusic = updataFunction;
                                         if (cTag == updataFunction.spk + "_State_" + updataFunction.sid)
                                         {
                                             try
                                             {
-                                                (fcView.GetChildren(j) as Button).IsSelected = uMusic.A31PlayStatus.status == "play";
+                                                (fcView.GetChildren(j) as Button).IsSelected = uMusic.GetAttrState("on_off") == "on";
                                             }
                                             catch (Exception ex)
                                             {
diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
index 0e8f778..ade6e01 100644
--- a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
+++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
@@ -214,9 +214,12 @@
 
                             foreach (var m in Music.A31MusicModel.A31MusicModelList)
                             {
-                                if (m.roomIds.Contains(room.roomId))
+                                if (m.functionMusic.roomIds.Contains(room.roomId))
                                 {
-                                    Music.SendMethod.Pause(m);
+                                    m.functionMusic.SetAttrState("on_off", "off");
+                                    Dictionary<string, string> dic = new Dictionary<string, string>();
+                                    dic.Add("on_off", "off");
+                                    Music.SendMethod.sendMethod.SendControlCommand(m.functionMusic, dic);
                                 }
                             }
                         })
diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
index 9a7fe8d..86d9ff5 100644
--- a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
+++ b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
@@ -408,7 +408,7 @@
                 SelectedImagePath = "MusicIcon/nextSelected.png",
             };
             bodyDiv.AddChidren(btnNext);
-            LoadEvent_ControlMusic(btnPlay, btnNext, btnPrev, function as A31MusicModel);
+            LoadEvent_ControlMusic(btnPlay, btnNext, btnPrev, function);
             #endregion
         }
 
diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs
index cdaef53..e4a3f68 100644
--- a/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs
+++ b/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs
@@ -291,7 +291,7 @@
         /// <param name="btnOpen"></param>
         /// <param name="btnClose"></param>
         /// <param name="curtain"></param>
-        void LoadEvent_ControlMusic(Button btnPlay,Button btnNext,Button btnPrev, A31MusicModel a31player) 
+        void LoadEvent_ControlMusic(Button btnPlay,Button btnNext,Button btnPrev, Function a31player) 
         {
             if (a31player == null)
                 return;
@@ -299,7 +299,10 @@
             btnPrev.MouseDownEventHandler = (sender, e) =>
             {
                 btnPrev.IsSelected = true;
-                SendMethod.Previous(a31player);
+                a31player.SetAttrState("song_step", "up");
+                Dictionary<string, string> dic = new Dictionary<string, string>();
+                dic.Add("song_step", "up");
+                SendMethod.sendMethod.SendControlCommand(a31player, dic);
             };
             btnPrev.MouseUpEventHandler = (sender, e) =>
             {
@@ -308,24 +311,30 @@
             ///鏆傚仠/鎾斁鐐瑰嚮浜嬩欢
             btnPlay.MouseDownEventHandler = (sender, e) =>
             {
+                string status = "off";
                 if (btnPlay.IsSelected)
                 {
                     btnPlay.IsSelected = false;
-                    SendMethod.Pause(a31player);
-                    a31player.A31PlayStatus.status = "pause";
+                    status = "off";
                 }
                 else
                 {
                     btnPlay.IsSelected = true;
-                    SendMethod.Play(a31player);
-                    a31player.A31PlayStatus.status = "play";
+                    status = "on";
                 }
+                a31player.SetAttrState("on_off", status);
+                Dictionary<string, string> dic = new Dictionary<string, string>();
+                dic.Add("on_off", status);
+                SendMethod.sendMethod.SendControlCommand(a31player, dic);
             };
             ///涓嬩竴鏇茬偣鍑讳簨浠�
             btnNext.MouseDownEventHandler = (sender, e) =>
             {
                 btnNext.IsSelected = true;
-                SendMethod.Next(a31player);
+                a31player.SetAttrState("song_step", "down");
+                Dictionary<string, string> dic = new Dictionary<string, string>();
+                dic.Add("song_step", "down");
+                SendMethod.sendMethod.SendControlCommand(a31player, dic);
             };
             btnNext.MouseUpEventHandler = (sender, e) =>
             {
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/A31LocalMusicList.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/A31LocalMusicList.cs
index 89c9543..6bbfd24 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/A31LocalMusicList.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/A31LocalMusicList.cs
@@ -46,14 +46,14 @@
         public void MusicView()
         {
             middViewLayout.RemoveAll();
-            UI2.FuntionControlView.Music.UpdateThread.playMusuc(middViewLayout, "鏈湴闊充箰", Language.StringByID(StringId.localMusic), MusicInfo.MusicInfoList, A31MusicModel.Current);
+           // UI2.FuntionControlView.Music.UpdateThread.playMusuc(middViewLayout, "鏈湴闊充箰", Language.StringByID(StringId.localMusic), MusicInfo.MusicIxnfoList, A31MusicModel.Current);
         }
         /// <summary>
         /// 瀹氭椂鏇存柊褰撳墠鎾斁闊充箰
         /// </summary>
         public void UpdateSelectedMusic()
         {
-            UI2.FuntionControlView.Music.UpdateThread.updateThread(this, middViewLayout,A31MusicModel.Current);
+            UI2.FuntionControlView.Music.UpdateThread.updateCurrMusicThread(this, middViewLayout,A31MusicModel.Current);
         }
     
     }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/A31LoveList.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/A31LoveList.cs
index 17e903c..3d7c891 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/A31LoveList.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/A31LoveList.cs
@@ -116,12 +116,12 @@
                     if (fileNameBtn.Text == Language.StringByID(StringId.a31Music))
                     {
                         ///鍠滅埍闊充箰鍒楄〃
-                        SelectedPaly(fileNameBtn.Text, A31MusicModel.Current.LoveMusicInfoList, playIconBtn);
+                        //SelectedPaly(fileNameBtn.Text, A31MusicModel.Current.LoveMusicInfoList, playIconBtn);
                     }
                     else
                     {
                         ///鍠滅埍鐢靛彴鍒楄〃
-                        SelectedPaly(fileNameBtn.Text, A31MusicModel.Current.LoveRadioInfoList, playIconBtn);
+                        //SelectedPaly(fileNameBtn.Text, A31MusicModel.Current.LoveRadioInfoList, playIconBtn);
                     }
 
                 };
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/A31LoveMusicList.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/A31LoveMusicList.cs
index e0a95e1..c7189cb 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/A31LoveMusicList.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/A31LoveMusicList.cs
@@ -49,14 +49,14 @@
         public void MusicView(string listName)
         {
             middViewLayout.RemoveAll();
-            UI2.FuntionControlView.Music.UpdateThread.playMusuc(middViewLayout, "鎴戠殑鏈�鐖�", listName, A31MusicModel.Current.LoveMusicInfoList, A31MusicModel.Current);
+            UI2.FuntionControlView.Music.UpdateThread.PlayMusicClick(middViewLayout, "鎴戠殑鏈�鐖�", listName, A31MusicModel.Current.LoveMusicInfoList);
         }
         /// <summary>
         /// 瀹氭椂鏇存柊褰撳墠鎾斁闊充箰
         /// </summary>
         public void UpdateSelectedMusic()
         {
-           UI2.FuntionControlView.Music.UpdateThread.updateThread(this, middViewLayout,A31MusicModel.Current);
+           UI2.FuntionControlView.Music.UpdateThread.updateCurrMusicThread(this, middViewLayout,A31MusicModel.Current);
         }
 
     
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicFileList.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicFileList.cs
new file mode 100644
index 0000000..779d161
--- /dev/null
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicFileList.cs
@@ -0,0 +1,115 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Shared;
+namespace HDL_ON.UI.Music
+{
+    public class A31MusicFileList : FrameLayout
+    {
+        public A31MusicFileList()
+        {
+            Tag = "Music";
+        }
+        VerticalRefreshLayout middViewLayout;
+        public void Show()
+        {
+            #region   鐣岄潰甯冨眬------
+
+            this.BackgroundColor = MusicColor.ViewColor;
+            var topView = new TopView();
+            this.AddChidren(topView.TopFLayoutView());
+            topView.topNameBtn.TextID = StringId.usb;
+            topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                this.RemoveFromParent();
+            };
+            middViewLayout = new VerticalRefreshLayout
+            {
+                BackgroundColor = MusicColor.WhiteColor,
+                Y = topView.fLayout.Bottom,
+                Height = Application.GetRealHeight(H_W.H - H_W.T_Height),
+            };
+            this.AddChidren(middViewLayout);
+            #endregion
+
+            middViewLayout.BeginHeaderRefreshingAction += () =>
+            {
+                System.Threading.Tasks.Task.Run(() =>
+                {
+                    try
+                    {
+                        SendMethod.sendMethod.GetPalyList(A31MusicModel.Current.functionMusic);
+                    }
+                    catch { }
+                    finally
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            FileView();
+                            middViewLayout.EndHeaderRefreshing();
+                        });
+                    }
+                });
+
+            };
+
+        }
+        /// <summary>
+        /// 鍔犺浇鏂囦欢澶筕iew鐨勬柟娉�
+        /// </summary>
+        public void FileView()
+        {
+            middViewLayout.RemoveAll();
+            for (int i = 0; i < A31MusicModel.Current.palyListInfos.Count; i++)
+            {
+                var list = A31MusicModel.Current.palyListInfos[i];
+                RowLayout addFlieRow = new RowLayout
+                {
+                    Height = Application.GetRealHeight(104),
+                    LineColor = MusicColor.WhiteColor,
+                    SubViewWidth = Application.GetRealWidth(90),//鏀瑰彉缂栬緫鎺т欢瀹藉害澶氬皯锛�
+                };
+                middViewLayout.AddChidren(addFlieRow);
+                //鏂囦欢鍥炬爣
+                Button fileIconBtn = new Button
+                {
+                    X = Application.GetRealWidth(16),
+                    Y = Application.GetRealHeight(8),
+                    Width = Application.GetRealWidth(88),
+                    Height = Application.GetRealWidth(88),
+                    UnSelectedImagePath = "MusicIcon/fileList.png",
+                };
+                addFlieRow.AddChidren(fileIconBtn);
+
+                //鏂囦欢鍚嶆帶浠�
+                Button fileNameBtn = new Button
+                {
+                    X = fileIconBtn.Right + Application.GetRealWidth(16),
+                    Y = Application.GetRealHeight(42),
+                    Width = Application.GetRealWidth(217),
+                    Height = Application.GetRealHeight(20),
+                    TextColor = MusicColor.TextColor,
+                    TextSize = TextSize.Text14,
+                    TextAlignment = TextAlignment.CenterLeft,
+                    Text = list.group,
+                };
+                addFlieRow.AddChidren(fileNameBtn);
+
+                Button clickBtn = new Button
+                {
+                    X = fileIconBtn.Right + Application.GetRealWidth(16),
+                    Width = Application.GetRealWidth(375 - 138),
+                    Height = Application.GetRealHeight(104),
+                };
+                addFlieRow.AddChidren(clickBtn);
+                clickBtn.MouseUpEventHandler += (sender, e) =>
+                {
+                    A31SongPlay a31Song = new A31SongPlay();
+                    MainPage.BasePageView.AddChidren(a31Song);
+                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                    a31Song.Show(list.songs, list.group);
+                };
+
+            }
+        }
+    }
+}
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicModel.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicModel.cs
index 13991b2..15371bc 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicModel.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicModel.cs
@@ -7,7 +7,7 @@
 {
 
     [System.Serializable]
-    public class A31MusicModel : Function
+    public class A31MusicModel
     {
         public static List<A31MusicModel> A31MusicModelList = new List<A31MusicModel> { };
         static readonly string a31MusiceModeListFilePath = "A31MusiceModeListFilePath";
@@ -46,15 +46,19 @@
                 }
             }
         }
-        
+        /// <summary>
+        /// 闊充箰鍔熻兘
+        /// </summary>
+        public Function functionMusic = new Function();
         /// <summary>
         /// 绉婚櫎涔嬪墠鐨勭嚎绋�
         /// </summary>
-        public static void RemoveListThread() {
+        public static void RemoveListThread()
+        {
             for (int i = 0; i < updataMusicStatesListThread.Count;)
             {
                 try
-                {                    
+                {
                     var thread = updataMusicStatesListThread[i];
                     if (thread.IsAlive)
                     {
@@ -81,7 +85,7 @@
             {
                 for (int i = 0; i < A31MusicModelList.Count; i++)
                 {
-                    if (A31MusicModelList[i].collect)
+                    if (A31MusicModelList[i].functionMusic.collect)
                     {
                         return true; //鏌ヨ鏄惁鏈夐煶涔愯鏀惰棌杩�
                     }
@@ -160,7 +164,7 @@
         /// <summary>
         ///褰撳墠鎾斁鐨勫垪琛ㄤ俊鎭�
         /// </summary>
-        public List<MusicInfo> CurrentPlayMusicInfoList = new List<MusicInfo>();
+        public List<Songs> CurrentPlayMusicInfoList = new List<Songs>();
 
         /// <summary>
         /// 鏄惁鍏佽鏄剧ず
@@ -172,43 +176,49 @@
         /// </summary>
         public bool IsOnLine = true;
 
+
+        /// <summary>
+        /// 鍒楄〃
+        /// </summary>
+        public List<PalyListInfo> palyListInfos = new List<PalyListInfo>();
+
         /// <summary>
         ///  鍠滅埍闊充箰鍒楄〃
         /// </summary>
-        public List<MusicInfo> LoveMusicInfoList = new List<MusicInfo>();
+        public List<Songs> LoveMusicInfoList = new List<Songs>();
 
         /// <summary>
         /// DLNA鎵�鏈夊垪琛�
         /// </summary>
-        public List<MusicInfo> dlnaMusicInfoLists = new List<MusicInfo>();
+        public List<Songs> dlnaMusicInfoLists = new List<Songs>();
 
         /// <summary>
         ///  鐢靛彴鎵�鏈夊垪琛�
         /// </summary>
-        public List<MusicInfo> CnRadioInfoList = new List<MusicInfo>();
+        public List<Songs> CnRadioInfoList = new List<Songs>();
 
         /// <summary>
         ///  vTuner鐢靛彴鎵�鏈夊垪琛�
         /// </summary>
-        public List<MusicInfo> vTunerList = new List<MusicInfo>();
+        public List<Songs> vTunerList = new List<Songs>();
 
         /// <summary>
         ///  鍠滅埍鐢靛彴鍒楄〃
         /// </summary>
-        public List<MusicInfo> LoveRadioInfoList = new List<MusicInfo>();
+        public List<Songs> LoveRadioInfoList = new List<Songs>();
 
         /// <summary>
         /// Pandora鐢靛彴鎵�鏈夊垪琛�
         /// </summary>
-        public List<MusicInfo> PanRadioInfoList = new List<MusicInfo>();
+        public List<Songs> PanRadioInfoList = new List<Songs>();
         /// <summary>
         /// usb鍒楄〃
         /// </summary>
-        public List<MusicInfo> USBList = new List<MusicInfo>();
+        public List<Songs> USBList = new List<Songs>();
         /// <summary>
         /// Tidal鍠滅埍鍒楄〃
         /// </summary>
-        public List<MusicInfo> TidalLikelist = new List<MusicInfo>();
+        public List<Songs> TidalLikelist = new List<Songs>();
         /// <summary>
         ///鍒涘缓闊充箰鏂囦欢鍒楄〃
         /// </summary>
@@ -231,9 +241,9 @@
             set
             {
                 _ServerClientType = value;
-                if(value == 0)
+                if (value == 0)
                 {
-                    name = Name;
+                    //name = Name;
                 }
             }
         }
@@ -255,11 +265,23 @@
             set
             {
                 _MainPlayName = value;
-                if(ServerClientType == 1)
-                {
-                    name = value;
-                }
+                //if(ServerClientType == 1)
+                //{
+                //    name = value;
+                //}
             }
+        }
+        /// <summary>
+        /// 鎸囧畾鍒楄〃鍚嶈幏鍙栭煶涔愬垪琛�
+        /// </summary>
+        /// <returns></returns>
+        public List<Songs> GetSongList(string listName)
+        {
+            var list = palyListInfos.Find((o)=>o.group==listName);
+            if (list==null) {
+                return new List<Songs>();
+            }
+            return list.songs;
         }
         /// <summary>
         /// 璁板綍涓绘挱鏀惧櫒鏄惁琚敹钘�(绉�妗″畾涔夌殑)
@@ -310,7 +332,7 @@
         /// <summary>
         ///  鍒楄〃姝屾洸淇℃伅
         /// </summary>
-        public List<MusicInfo> MusicInfoList = new List<MusicInfo>();
+        public List<Songs> MusicInfoList = new List<Songs>();
     }
     [System.Serializable]
     public class TidalMusicInfo : MusicInfo
@@ -339,5 +361,45 @@
         public string version = string.Empty;
         public string uuid = string.Empty;
     }
+    [System.Serializable]
+    /// <summary>
+    /// 鍒楄〃淇℃伅
+    /// </summary>
+    public class PalyListInfo
+    {
+        /// <summary>
+        /// 鍒楄〃鍚�
+        /// </summary>
+        public string group = string.Empty;
+        /// <summary>
+        ///  鍒楄〃姝屾洸淇℃伅
+        /// </summary>
+        public List<Songs> songs = new List<Songs>();
+    }
+    [System.Serializable]
+    public class Songs:MusicInfo
+    {
+        /// <summary>
+        /// 姝屾洸鍚嶇О
+        /// </summary>
+        public string name = string.Empty;
+        /// <summary>
+        /// 澶у皬
+        /// </summary>
+        public string size = string.Empty;
+        /// <summary>
+        /// 鏃堕暱
+        /// </summary>
+        public string time = string.Empty;
+        /// <summary>
+        /// 绫诲瀷<鑷繁鐢�>
+        /// </summary>
+        public string type = string.Empty;
+
+
+
+
+    }
+
 
 }
\ No newline at end of file
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicSourcePage.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicSourcePage.cs
index 3db0642..572d534 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicSourcePage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicSourcePage.cs
@@ -70,7 +70,7 @@
             areaText.lineBtn.BackgroundColor = MusicColor.WhiteColor;
             areaText.textBtn.X = Application.GetRealWidth(16);
             areaText.textBtn.TextID = StringId.region;
-            areaText.inputTextBtn.Text = A31MusicModel.Current.GetRoomListName();
+            areaText.inputTextBtn.Text = A31MusicModel.Current.functionMusic.GetRoomListName();
 
             #endregion
 
@@ -122,17 +122,23 @@
             selectedSourceView.nextLevelBtn.Visible = false;
             selectedSourceView.FrameLayoutView(fL3, false);
 
+            View.MusicSourceView musicSourceView = new View.MusicSourceView();
+            musicSourceView.fLayout.Y = selectedSourceView.fLayout.Bottom;
+            musicSourceView.iconBtn.UnSelectedImagePath = "MusicIcon/usb.png";
+            musicSourceView.textBtn.TextID = StringId.usb;
+            musicSourceView.FrameLayoutView(fL3);
+
             View.MusicSourceView localMusicSourceView = new View.MusicSourceView();
-            localMusicSourceView.fLayout.Y = selectedSourceView.fLayout.Bottom;
+            localMusicSourceView.fLayout.Y = musicSourceView.fLayout.Bottom;
             localMusicSourceView.iconBtn.UnSelectedImagePath = "MusicIcon/localMusic.png";
             localMusicSourceView.textBtn.TextID = StringId.localMusic;
-            localMusicSourceView.FrameLayoutView(fL3);
+            //localMusicSourceView.FrameLayoutView(fL3);
 
             View.MusicSourceView usbSourceView = new View.MusicSourceView();
             usbSourceView.fLayout.Y = localMusicSourceView.fLayout.Bottom;
             usbSourceView.iconBtn.UnSelectedImagePath = "MusicIcon/usb.png";
             usbSourceView.textBtn.TextID = StringId.usb;
-            usbSourceView.FrameLayoutView(fL3);
+            //usbSourceView.FrameLayoutView(fL3);
 
             View.MusicSourceView radioSourceView = new View.MusicSourceView();
             radioSourceView.fLayout.Y = usbSourceView.fLayout.Bottom;
@@ -144,19 +150,19 @@
             qqMusicSourceView.fLayout.Y = usbSourceView.fLayout.Bottom;
             qqMusicSourceView.iconBtn.UnSelectedImagePath = "MusicIcon/qqMusic.png";
             qqMusicSourceView.textBtn.TextID = StringId.qqMusic;
-            qqMusicSourceView.FrameLayoutView(fL3);
+            //qqMusicSourceView.FrameLayoutView(fL3);
 
             View.MusicSourceView bluetoothSourceView = new View.MusicSourceView();
             bluetoothSourceView.fLayout.Y = qqMusicSourceView.fLayout.Bottom;
             bluetoothSourceView.iconBtn.UnSelectedImagePath = "MusicIcon/bluetooth.png";
             bluetoothSourceView.textBtn.TextID = StringId.bluetooth;
-            bluetoothSourceView.FrameLayoutView(fL3);
+            //bluetoothSourceView.FrameLayoutView(fL3);
 
             View.MusicSourceView lineSourceView = new View.MusicSourceView();
             lineSourceView.fLayout.Y = bluetoothSourceView.fLayout.Bottom;
             lineSourceView.iconBtn.UnSelectedImagePath = "MusicIcon/line.png";
             lineSourceView.textBtn.TextID = StringId.line;
-            lineSourceView.FrameLayoutView(fL3);
+            //lineSourceView.FrameLayoutView(fL3);
 
 
             #endregion
@@ -164,6 +170,41 @@
             #endregion
 
             #region  鎵�鏈夌偣鍑讳簨浠�
+            ///浜嬩欢
+            musicSourceView.clickBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                A31MusicFileList a31MusicFileList = new A31MusicFileList();
+                MainPage.BasePageView.AddChidren(a31MusicFileList);
+                a31MusicFileList.Show();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                Loading loading = new Loading();
+                a31MusicFileList.AddChidren(loading);
+                loading.Start();
+                System.Threading.Tasks.Task.Run(() =>
+                {
+                    try
+                    {
+                        if (A31MusicModel.Current.palyListInfos.Count == 0)
+                        {
+                           SendMethod.sendMethod.GetPalyList(A31MusicModel.Current.functionMusic);
+                           
+                        }
+                    }
+                    catch
+                    {
+                    }
+                    finally
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            loading.Hide();
+                            a31MusicFileList.FileView();
+                        });
+                    }
+                });
+            };
+
+
             ///鎾斁鍣ㄤ慨鏀瑰悕绉颁簨浠�
             playNameView.clickBtn.MouseUpEventHandler += (sender, e) =>
             {
@@ -189,9 +230,9 @@
             ///鍖哄煙淇敼鐨勪簨浠�
             areaText.clickBtn.MouseUpEventHandler += (sender, e) =>
             {
-                ChooseRoomPage chooseRoomPage = new ChooseRoomPage(A31MusicModel.Current, () =>
+                ChooseRoomPage chooseRoomPage = new ChooseRoomPage(A31MusicModel.Current.functionMusic, () =>
                 {
-                    areaText.inputTextBtn.Text = A31MusicModel.Current.GetRoomListName();
+                    areaText.inputTextBtn.Text = A31MusicModel.Current.functionMusic.GetRoomListName();
                     A31MusicModel.Save();
                 });
                 MainPage.BasePageView.AddChidren(chooseRoomPage);
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/A31MyList.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/A31MyList.cs
index 2e8ac86..21a2aa7 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/A31MyList.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/A31MyList.cs
@@ -157,7 +157,7 @@
                                     //绉婚櫎鐣岄潰
                                     System.Threading.Tasks.Task.Run(() =>
                                     {
-                                       SendMethod.PushList(songs, list.ListName, list.MusicInfoList,A31MusicModel.Current, "鎴戠殑鍒楄〃");
+                                      // SendMethod.PushList(songs, list.ListName, list.MusicInfoList,A31MusicModel.Current, "鎴戠殑鍒楄〃");
                                     });
                                 });
                             });
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/A31MyListMusic.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/A31MyListMusic.cs
index f55fa85..a673650 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/A31MyListMusic.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/A31MyListMusic.cs
@@ -47,14 +47,14 @@
         public void MusicView(FileListInfo fileListInfo)
         {
             middViewLayout.RemoveAll();
-            UI2.FuntionControlView.Music.UpdateThread.playMusuc(middViewLayout,"鎴戠殑鍒楄〃", fileListInfo.ListName, fileListInfo.MusicInfoList, A31MusicModel.Current);
+            UI2.FuntionControlView.Music.UpdateThread.PlayMusicClick(middViewLayout,"鎴戠殑鍒楄〃", fileListInfo.ListName, fileListInfo.MusicInfoList);
         }
         /// <summary>
         /// 瀹氭椂鏇存柊褰撳墠鎾斁闊充箰
         /// </summary>
         public void UpdateSelectedMusic()
         {
-            UI2.FuntionControlView.Music.UpdateThread.updateThread(this, middViewLayout, A31MusicModel.Current);
+            UI2.FuntionControlView.Music.UpdateThread.updateCurrMusicThread(this, middViewLayout, A31MusicModel.Current);
         }
 
        
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs
index d651ae9..284aadc 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs
@@ -74,62 +74,67 @@
                 playView.collectIconBtn.IsSelected = !playView.collectIconBtn.IsSelected;
                 if (playView.collectIconBtn.IsSelected)
                 {
-                    A31MusicModel.Current.collect = true;
+                    A31MusicModel.Current.functionMusic.collect = true;
                 }
                 else
                 {
-                    A31MusicModel.Current.collect = false;
+                    A31MusicModel.Current.functionMusic.collect = false;
                 }
 
             };
             //蹇繘婊戝姩寮硅捣浜嬩欢;
             playView.diyArcSeekBar.OnStopTrackingTouchEvent+= (sender, e) =>
             {
-                int totalSecond = (int)(playView.diyArcSeekBar.Progress * 1.0f / 100 * int.Parse(A31MusicModel.Current.A31PlayStatus.totlen) / 1000);
+                int totalSecond = (int)(playView.diyArcSeekBar.Progress * 1.0f / 100 * int.Parse(A31MusicModel.Current.functionMusic.GetAttrState("song_time")));
                 //鍒嗛挓
                 int Minute = totalSecond / 60;
                 //绉掗挓
                 int Second = totalSecond % 60;
                 string time = "00" + ":" + (Minute.ToString().Length < 2 ? "0" + Minute.ToString() : Minute.ToString()) + ":" + (Second.ToString().Length < 2 ? "0" + Second.ToString() : Second.ToString());
-                SendMethod.Seek(time, A31MusicModel.Current);
+                //SendMethod.Seek(time, A31MusicModel.Current);
+
+                //Dictionary<string, string> dic = new Dictionary<string, string>();
+                //dic.Add("mode", modeValueString);
+                //SendMethod.sendMethod.SendControlCommand(A31MusicModel.Current.functionMusic, dic);
                 A31MusicModel.Current.A31PlayStatus.curpos = (DateTime.Parse(time) - DateTime.Parse("00:00:00")).TotalMilliseconds.ToString();
             };
             ///鍒囨崲鎾斁妯″紡鐐瑰嚮浜嬩欢;
             playView.playOrderBtn.MouseUpEventHandler += (sender, e) =>
              {
+                 string modeValueString = string.Empty; 
                  string msg = Language.StringByID(StringId.switchTo);
                  switch (A31MusicModel.Current.A31PlayStatus.loop)
                  {
-                     //0鍒楄〃寰幆锛�1鍗曟洸寰幆锛�2闅忔満鎾斁;
-                     case "0":
-                         A31MusicModel.Current.A31PlayStatus.loop = "1";
+                     //list_cycle鍒楄〃寰幆锛宻ingle_cycle鍗曟洸寰幆锛宺andom闅忔満鎾斁;
+                     case "list_cycle":
+                         modeValueString="single_cycle";
                          playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/single.png";
                          msg += Language.StringByID(StringId.singleMode);
                          break;
 
-                     case "1":
-                         A31MusicModel.Current.A31PlayStatus.loop = "2";
+                     case "single_cycle":
+                         modeValueString = "random";
                          playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/random.png";
                          msg += Language.StringByID(StringId.randomMode);
                          break;
-                     case "2":
-                         A31MusicModel.Current.A31PlayStatus.loop = "0";
+                     case "random":
+                         modeValueString = "list_cycle";
                          playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/list.png";
                          msg += Language.StringByID(StringId.listMode);
                          break;
                  }
+                 A31MusicModel.Current.functionMusic.SetAttrState("mode", modeValueString);
                  new PublicAssmebly().TipMsgAutoClose(msg, false,1000);
-                 string url = "http://" + A31MusicModel.Current.IPAddress + "/httpapi.asp?command=setPlayerCmd:" + "loopmode:" + A31MusicModel.Current.A31PlayStatus.loop;
-                 SendMethod.SendCommand(url);
+                 Dictionary<string, string> dic = new Dictionary<string, string>();
+                 dic.Add("mode",modeValueString);
+                 SendMethod.sendMethod.SendControlCommand(A31MusicModel.Current.functionMusic,dic);
              };
             ///娣诲姞鍠滅埍鐐瑰嚮浜嬩欢;
             playView.loveBtn.MouseUpEventHandler += (sender, e) =>
             {
 
-                var url = A31MusicModel.Current.A31PlayStatus.TrackURL;
-                var album = A31MusicModel.Current.A31PlayStatus.Album;
-                var artist = A31MusicModel.Current.A31PlayStatus.Artist;
-                var song = A31MusicModel.Current.A31PlayStatus.Title;
+                var name = A31MusicModel.Current.functionMusic.GetAttribute("song_name").ToString();
+                var songTime = A31MusicModel.Current.functionMusic.GetAttribute("song_time").ToString();
                 if (A31MusicModel.Current.A31PlayStatus.Source == "RADIO-NETWORK")
                 {
                     playView.loveBtn.IsSelected = !playView.loveBtn.IsSelected;
@@ -137,17 +142,17 @@
                     {
                         if (null == A31MusicModel.Current.LoveRadioInfoList.Find((musicInfo) =>
                         {
-                            return url == musicInfo.URL;
+                            return name == musicInfo.name;
                         }))
                         {
-                            A31MusicModel.Current.LoveRadioInfoList.Add(new MusicInfo { Title = song, URL = url, });
+                            A31MusicModel.Current.LoveRadioInfoList.Add(new Songs { name = name, time = songTime});
                         }
                     }
                     else
                     {
                         A31MusicModel.Current.LoveRadioInfoList.RemoveAll((musicInfo) =>
                         {
-                            return url == musicInfo.URL;
+                            return name == musicInfo.name;
                         });
                     }
                 }
@@ -158,10 +163,10 @@
                     {
                         if (null == A31MusicModel.Current.LoveMusicInfoList.Find((musicInfo) =>
                         {
-                            return url == musicInfo.URL;
+                            return name == musicInfo.name;
                         }))
                         {
-                            A31MusicModel.Current.LoveMusicInfoList.Add(new MusicInfo { Title = song, URL = url, Artist = artist, Album = album });
+                            A31MusicModel.Current.LoveMusicInfoList.Add(new Songs { name = name, time = songTime});
                         }
                     }
                     else
@@ -169,7 +174,7 @@
                         A31MusicModel.Current.LoveMusicInfoList.RemoveAll((musicInfo) =>
                         {
                             //涔熻鍔犳瓕鎵嬪悕鍒ゆ柇
-                            return musicInfo.URL == url;
+                            return musicInfo.name == name;
                         });
                     }
 
@@ -198,14 +203,13 @@
                 myListView.backIextBtn.MouseUpEventHandler += removeFromParentView;
                 myListView.popFra.MouseUpEventHandler += removeFromParentView;
                 #endregion
-                loading.Start();
-                GetMusicList((listName) =>
-                {
-                    loading.Hide();
-                    PlayListView(myListView.popFra, myListView.verticalScrolViewLayout, listName);
-                    UpdateSelectedMusic(myListView.popFra, myListView.verticalScrolViewLayout);
-                });
-               
+                //var listName = A31MusicModel.Current.functionMusic.GetAttribute("playlist_name").ToString();
+                //var musicList = A31MusicModel.Current.GetSongList(listName);
+                //new A31SongPlay { }.SongListView(myListView.verticalScrolViewLayout, musicList, listName);
+
+                PlayListView(myListView.popFra, myListView.verticalScrolViewLayout);
+                UpdateSelectedMusic(myListView.popFra, myListView.verticalScrolViewLayout);
+
             };
             ///闊抽噺鍥炬爣鐐瑰嚮浜嬩欢
             playView.volIconBtn.MouseUpEventHandler += (sender, e) =>
@@ -227,8 +231,11 @@
                 if (startVolume != e)
                 {
                     startVolume = e;
-                    SendMethod.ControlVolume(e, A31MusicModel.Current);
-                    A31MusicModel.Current.A31PlayStatus.vol = e.ToString();
+                    A31MusicModel.Current.functionMusic.SetAttrState("volume", startVolume);
+                    Dictionary<string, string> dic = new Dictionary<string, string>();
+                    dic.Add("volume", startVolume.ToString());
+                    SendMethod.sendMethod.SendControlCommand(A31MusicModel.Current.functionMusic, dic);
+
                 }
             };
             playView.volSeekBar.OnProgressChangedEvent += progressClick;
@@ -237,7 +244,12 @@
             playView.prevBtn.MouseDownEventHandler += (sender, e) =>
             {
                 playView.prevBtn.IsSelected = true;
-                SendMethod.Previous(A31MusicModel.Current);
+
+                A31MusicModel.Current.functionMusic.SetAttrState("song_step", "down");
+                Dictionary<string, string> dic = new Dictionary<string, string>();
+                dic.Add("song_step", "down");
+                SendMethod.sendMethod.SendControlCommand(A31MusicModel.Current.functionMusic, dic);
+
             };
             playView.prevBtn.MouseUpEventHandler += (sender, e) =>
             {
@@ -246,24 +258,30 @@
             ///鏆傚仠/鎾斁鐐瑰嚮浜嬩欢
             playView.playBtn.MouseDownEventHandler += (sender, e) =>
             {
+                string status = string.Empty;
                 if (playView.playBtn.IsSelected)
                 {
                     playView.playBtn.IsSelected = false;
-                    SendMethod.Pause(A31MusicModel.Current);
-                    A31MusicModel.Current.A31PlayStatus.status = "pause";
+                    status = "off";
                 }
                 else
                 {
                     playView.playBtn.IsSelected = true;
-                    SendMethod.Play(A31MusicModel.Current);
-                    A31MusicModel.Current.A31PlayStatus.status = "play";
+                    status = "on";
                 }
+                A31MusicModel.Current.functionMusic.SetAttrState("on_off", status);
+                Dictionary<string, string> dic = new Dictionary<string, string>();
+                dic.Add("on_off", status);
+                SendMethod.sendMethod.SendControlCommand(A31MusicModel.Current.functionMusic, dic);
             };
             ///涓嬩竴鏇茬偣鍑讳簨浠�
             playView.nextBtn.MouseDownEventHandler += (sender, e) =>
             {
                 playView.nextBtn.IsSelected = true;
-                SendMethod.Next(A31MusicModel.Current);
+                A31MusicModel.Current.functionMusic.SetAttrState("song_step", "down");
+                Dictionary<string, string> dic = new Dictionary<string, string>();
+                dic.Add("song_step", "down");
+                SendMethod.sendMethod.SendControlCommand(A31MusicModel.Current.functionMusic, dic);
             };
             playView.nextBtn.MouseUpEventHandler += (sender, e) =>
             {
@@ -281,8 +299,10 @@
                 if (startVolume != volume)
                 {
                     startVolume = volume;
-                    SendMethod.ControlVolume(volume, A31MusicModel.Current);
-                    A31MusicModel.Current.A31PlayStatus.vol = volume.ToString();
+                    A31MusicModel.Current.functionMusic.SetAttrState("volume", startVolume);
+                    Dictionary<string, string> dic = new Dictionary<string, string>();
+                    dic.Add("volume", startVolume.ToString());
+                    SendMethod.sendMethod.SendControlCommand(A31MusicModel.Current.functionMusic, dic);
                 }
 
             };
@@ -308,7 +328,7 @@
 
                             //鏇存柊鎬绘椂闂�                            
                             //鎬诲叡鏈夊灏戠
-                            int totalSecond = int.Parse(A31MusicModel.Current.A31PlayStatus.totlen) / 1000;
+                            int totalSecond = int.Parse(A31MusicModel.Current.functionMusic.GetAttrState("song_time"));
                             //鍒嗛挓
                             int totalMusicMinute = totalSecond / 60;
                             //绉掗挓
@@ -319,52 +339,52 @@
 
                             //topView.topNameBtn.Text = A31MusicModel.Current.Name;
 
-                            switch (A31MusicModel.Current.A31PlayStatus.loop)
+                            switch (A31MusicModel.Current.functionMusic.GetAttrState("mode"))
                             {
-                                case "0"://鍒楄〃寰幆
+                                case "list_cycle"://鍒楄〃寰幆
                                     playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/list.png";
                                     break;
-                                case "1"://鍗曟洸椤虹幆
+                                case "single_cycle"://鍗曟洸寰幆
                                     playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/single.png";
                                     break;
-                                case "2"://闅忔満鎾斁
+                                case "random"://闅忔満鎾斁
                                     playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/random.png";
                                     break;
                             }
 
 
-                            if (A31MusicModel.Current.A31PlayStatus.Source == "RADIO-NETWORK")
-                            {
-                                var v = A31MusicModel.Current.LoveRadioInfoList.Find((like) =>
-                                {
-                                    return like.URL == A31MusicModel.Current.A31PlayStatus.TrackURL;
-                                });
-                                if (v != null)
-                                {
-                                    playView.loveBtn.IsSelected = true;
-                                }
-                                else
-                                {
-                                    playView.loveBtn.IsSelected = false;
-                                }
-                            }
-                            else
-                            {
-                                var v = A31MusicModel.Current.LoveMusicInfoList.Find((like) =>
-                                {
-                                    return like.URL == A31MusicModel.Current.A31PlayStatus.TrackURL;
-                                });
-                                if (v != null)
-                                {
-                                    playView.loveBtn.IsSelected = true;
-                                }
-                                else
-                                {
-                                    playView.loveBtn.IsSelected = false;
-                                }
-                            }
-                            playView.regionBtn.Text = A31MusicModel.Current.GetRoomListName();
-                            if (A31MusicModel.Current.collect)
+                            //if (A31MusicModel.Current.A31PlayStatus.Source == "RADIO-NETWORK")
+                            //{
+                            //    var v = A31MusicModel.Current.LoveRadioInfoList.Find((like) =>
+                            //    {
+                            //        return like.URL == A31MusicModel.Current.A31PlayStatus.TrackURL;
+                            //    });
+                            //    if (v != null)
+                            //    {
+                            //        playView.loveBtn.IsSelected = true;
+                            //    }
+                            //    else
+                            //    {
+                            //        playView.loveBtn.IsSelected = false;
+                            //    }
+                            //}
+                            //else
+                            //{
+                            //    var v = A31MusicModel.Current.LoveMusicInfoList.Find((like) =>
+                            //    {
+                            //        return like.URL == A31MusicModel.Current.A31PlayStatus.TrackURL;
+                            //    });
+                            //    if (v != null)
+                            //    {
+                            //        playView.loveBtn.IsSelected = true;
+                            //    }
+                            //    else
+                            //    {
+                            //        playView.loveBtn.IsSelected = false;
+                            //    }
+                            //}
+                            playView.regionBtn.Text = A31MusicModel.Current.functionMusic.GetRoomListName();
+                            if (A31MusicModel.Current.functionMusic.collect)
                             {
                                 playView.collectIconBtn.IsSelected = true;
                             }
@@ -399,7 +419,7 @@
                             //鏇存柊鎾斁鍣ㄩ煶閲忕粰绯荤粺闊抽噺
                             Volume.MusicVolume = playView.volSeekBar.Progress;
                             //褰撳墠鎾斁闊充箰鏃堕棿        
-                            int playSecond = int.Parse(A31MusicModel.Current.A31PlayStatus.curpos) / 1000 + (int)(DateTime.Now - A31MusicModel.Current.LastDateTime).TotalSeconds;
+                            int playSecond = int.Parse(A31MusicModel.Current.functionMusic.GetAttrState("playing_time"))+ (int)(DateTime.Now - A31MusicModel.Current.LastDateTime).TotalSeconds;
 
                             int playMusicMinute = playSecond / 60;
                             //绉掗挓
@@ -407,7 +427,7 @@
 
                             string playTime = (playMusicMinute.ToString().Length < 2 ? "0" + playMusicMinute.ToString() : playMusicMinute.ToString()) + ":" + (playMusicSecond.ToString().Length < 2 ? "0" + playMusicSecond.ToString() : playMusicSecond.ToString());
 
-                            if (A31MusicModel.Current.A31PlayStatus.status == "play")
+                            if (A31MusicModel.Current.functionMusic.GetAttrState("on_off") == "on")
                             {
                                 playView.playBtn.IsSelected = true;
                                 //濡傛灉鍦ㄦ挱鏀撅紝鏃堕棿灏变笉鏂彉鍖�                    
@@ -430,10 +450,10 @@
                                 //鍋滄鎾斁
                                 playView.startTimeBtn.Text =playTime;
                             }
-                            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());
+                            playView.songNameTextView.Text = A31MusicModel.Current.functionMusic.GetAttrState("song_name") == null ? "Unkown" : A31MusicModel.Current.functionMusic.GetAttrState("song_name");
+                            playView.singerBtn.Text = A31MusicModel.Current.functionMusic.GetAttrState("song_name") == null ? "Unkown" : A31MusicModel.Current.functionMusic.GetAttrState("song_name");
                             //鏇存柊婧愮殑鐣岄潰
-                            showSourcePage();
+                           // showSourcePage();
                         }
                         catch (Exception e)
                         {
@@ -469,7 +489,7 @@
 
             playView.diyArcSeekBar.IsClickable = true;
 
-            switch (A31MusicModel.Current.A31PlayStatus.Source)
+            switch (A31MusicModel.Current.functionMusic.GetAttrState("source"))
             {
 
                 case "QPLAY"://QQ闊充箰
@@ -539,91 +559,20 @@
         /// 鍔犺浇鎾斁闊充箰鍒楄〃View
         /// </summary>
         /// <param name="verticalScrolViewLayout"></param>
-        void PlayListView(FrameLayout frameLayout, VerticalRefreshLayout verticalScrolViewLayout, string playListName)
+        void PlayListView(FrameLayout frameLayout, VerticalRefreshLayout verticalScrolViewLayout)
         {
             verticalScrolViewLayout.RemoveAll();
-            UI2.FuntionControlView.Music.UpdateThread.playMusuc(verticalScrolViewLayout,"鎾斁鍒楄〃", playListName, A31MusicModel.Current.CurrentPlayMusicInfoList,A31MusicModel.Current,frameLayout);
+            var listName = A31MusicModel.Current.functionMusic.GetAttribute("playlist_name").ToString();
+            var musicList = A31MusicModel.Current.GetSongList(listName);
+            UI2.FuntionControlView.Music.UpdateThread.PlayMusicClick(verticalScrolViewLayout,"鎾斁鍒楄〃", listName, musicList, frameLayout);
         }
         /// <summary>
         /// 瀹氭椂鏇存柊褰撳墠鎾斁闊充箰
         /// </summary>
         void UpdateSelectedMusic(FrameLayout frameLayout, VerticalRefreshLayout middViewLayout)
         {
-            UI2.FuntionControlView.Music.UpdateThread.updateThread(frameLayout, middViewLayout, A31MusicModel.Current);
+            UI2.FuntionControlView.Music.UpdateThread.updateCurrMusicThread(frameLayout, middViewLayout, A31MusicModel.Current);
         }
-        /// <summary>
-        /// 璇诲彇鎾斁闊充箰鍒楄〃
-        /// </summary>
-        /// <param name="action"></param>
-        void GetMusicList(Action<string> action) {
-            System.Threading.Tasks.Task.Run(() =>
-            {
-                string playListName = "List";
-                string sourceName = "SourceName";
-                try
-                {
-                    if (A31MusicModel.Current.A31PlayStatus.Source == "STATION-NETWORK")
-                    {
-                        A31MusicModel.Current.CurrentPlayMusicInfoList = new List<MusicInfo>();
-                        return;
-                    }
-                    if (A31MusicModel.Current.A31PlayStatus.Source == "AIRPLAY")
-                    {
-                        A31MusicModel.Current.CurrentPlayMusicInfoList = new List<MusicInfo>();
-                        return;
-                    }
-                    var playString = SendMethod.GetCurrentPlayList(A31MusicModel.Current);
-                    A31MusicModel.Current.CurrentPlayMusicInfoList = new List<MusicInfo>();
-                    var se = System.Security.SecurityElement.FromString(playString);
-                    while (se.Children != null)
-                    {
-                        se = se.Children[0] as System.Security.SecurityElement;
-                    }
-                    playListName = SecurityElement.FromString(se.Text).SearchForChildByTag("ListName").Text;
-                    sourceName = SecurityElement.FromString(se.Text).SearchForChildByTag("ListInfo").SearchForTextOfTag("SourceName");
-                    foreach (SecurityElement track in SecurityElement.FromString(se.Text).SearchForChildByTag("Tracks").Children)
-                    {
-                        MusicInfo musicInfo = new MusicInfo();
-                        musicInfo.URL = track.SearchForTextOfTag("URL").Replace("&", "&amp;amp;");
-                        var metadata = track.SearchForTextOfTag("Metadata");
-                        musicInfo.SourceName = track.SearchForTextOfTag("Source");
-                        if (string.IsNullOrEmpty(metadata))
-                        {
-                            continue;
-                        }
-                        if (A31MusicModel.IsJson(metadata))
-                        {
-                            var qqSong = Newtonsoft.Json.JsonConvert.DeserializeObject<SendMethod.A31QQSong>(metadata);
-                            musicInfo.Album = qqSong.album;
-                            musicInfo.Title = qqSong.title;
-                            musicInfo.Artist = qqSong.creator;
-                        }
-                        else
-                        {
-                            metadata = metadata.Replace("<?xml version=\"1.0\" encoding=\"UTF-8\"?>", "").Replace("&", "&amp;amp;");
-                            var item = SecurityElement.FromString(metadata).SearchForChildByTag("item");
-                            musicInfo.Title = item.SearchForTextOfTag("dc:title");
-                            musicInfo.Artist = item.SearchForTextOfTag("upnp:artist");
-                            musicInfo.Album = item.SearchForTextOfTag("upnp:album");
-                            musicInfo.Duration = item.SearchForTextOfTag("res");
-                            musicInfo.AlbumId = item.SearchForTextOfTag("song:albumid");
-                        }
-                        A31MusicModel.Current.CurrentPlayMusicInfoList.Add(musicInfo);
-                    }
-                }
-                catch { }
-                finally
-                {
-                    Application.RunOnMainThread(() =>
-                    {
-                        action(playListName);
-                        //loading.Hide();
-                        //PlayListView(myListView.popFra, myListView.verticalScrolViewLayout, playListName);
-                        //UpdateSelectedMusic(myListView.popFra, myListView.verticalScrolViewLayout);
-                    });
-                }
-            });
-
-        }
+     
     }
 }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/A31Radio.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/A31Radio.cs
index bd119b9..b912f39 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/A31Radio.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/A31Radio.cs
@@ -126,7 +126,7 @@
                             {
                                 if (childNodes.Name == "outline" && childNodes.Attributes["URL"] != null)
                                 {
-                                    MusicInfo musicInfoCN = new MusicInfo();
+                                    Songs musicInfoCN = new Songs();
                                     musicInfoCN.URL = childNodes.Attributes["URL"] == null ? "" : childNodes.Attributes["URL"].Value;
                                     musicInfoCN.Title = childNodes.Attributes["text"] == null ? "" : childNodes.Attributes["text"].Value;
                                     musicInfoCN.Image = childNodes.Attributes["image"] == null ? "" : childNodes.Attributes["image"].Value;
@@ -149,7 +149,7 @@
                                 {
                                     if (a.Name == "outline")
                                     {
-                                        MusicInfo musicInfoCN = new MusicInfo();
+                                        Songs musicInfoCN = new Songs();
                                         musicInfoCN.URL = a.Attributes["URL"] == null ? "" : a.Attributes["URL"].Value;
                                         musicInfoCN.Title = a.Attributes["text"] == null ? "" : a.Attributes["text"].Value;
 
@@ -224,8 +224,8 @@
                     switch (v.Name)
                     {
                         case "outline":
-                            MusicInfo musicInfo = new MusicInfo();
-                            musicInfo.Title = v.Attributes["text"].Value;
+                            Songs musicInfo = new Songs();
+                            musicInfo.name = v.Attributes["text"].Value;
                             musicInfo.URL = v.Attributes["URL"].Value;
                             musicInfo.Cnkey = v.Attributes["key"].Value;
 
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/A31RadioList.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/A31RadioList.cs
index 9ad5b09..6470d48 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/A31RadioList.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/A31RadioList.cs
@@ -245,7 +245,7 @@
                                 {
                                     if (childNodes.Name == "outline" && childNodes.Attributes["URL"] != null)
                                     {
-                                        MusicInfo musicInfoCN = new MusicInfo();
+                                        Songs musicInfoCN = new Songs();
                                         musicInfoCN.URL = childNodes.Attributes["URL"] == null ? "" : childNodes.Attributes["URL"].Value;
                                         musicInfoCN.Title = childNodes.Attributes["text"] == null ? "" : childNodes.Attributes["text"].Value;
                                         //musicInfoCN.Image = childNodes.Attributes["image"] == null ? "" : childNodes.Attributes["image"].Value;
@@ -275,7 +275,7 @@
                                     {
                                         if (a.Name == "outline")
                                         {
-                                            MusicInfo musicInfoCN = new MusicInfo();
+                                            Songs musicInfoCN = new Songs();
                                             musicInfoCN.URL = a.Attributes["URL"] == null ? "" : a.Attributes["URL"].Value;
                                             musicInfoCN.Title = a.Attributes["text"] == null ? "" : a.Attributes["text"].Value;
                                             if (a.Attributes["image"] != null)
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/A31SongPlay.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/A31SongPlay.cs
new file mode 100644
index 0000000..349bac5
--- /dev/null
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/A31SongPlay.cs
@@ -0,0 +1,81 @@
+锘縰sing System;
+using Shared;
+using HDL_ON.UI.Music;
+using System.Collections.Generic;
+
+namespace HDL_ON.UI.Music
+{
+
+    public class A31SongPlay : FrameLayout
+    {
+        public A31SongPlay()
+        {
+            Tag = "Music";
+        }
+
+        public void Show(List<Songs> musicList,string listName)
+        {
+
+            this.BackgroundColor = MusicColor.ViewColor;
+            var topView = new TopView();
+            this.AddChidren(topView.TopFLayoutView());
+            topView.topNameBtn.TextID = StringId.usb;
+            topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                this.RemoveFromParent();
+            };
+            var vv = new VerticalRefreshLayout
+            {
+                BackgroundColor = MusicColor.WhiteColor,
+                Y = topView.fLayout.Bottom,
+                Height = Application.GetRealHeight(H_W.H - H_W.T_Height),
+            };
+            this.AddChidren(vv);
+            ///鍔犺浇闊充箰鍒楄〃
+            SongListView(vv, musicList, listName);
+
+
+        }
+        /// <summary>
+        /// 鍔犺浇闊充箰鍒楄〃
+        /// </summary>
+        /// <param name="vv">鐖舵帶浠�</param>
+        /// <param name="musicList">闊充箰鍒楄〃</param>
+        /// <param name="listName">鍒楄〃鍚�</param>
+        public void SongListView(VerticalRefreshLayout vv,List<Songs> musicList,string listName) {
+
+            for (int i = 0; i < musicList.Count; i++)
+            {
+                var songs = musicList[i];
+                if (songs == null)
+                {
+                    continue;
+                }
+                UI.Music.View.SongView songView = new UI.Music.View.SongView();
+                songView.SongFrameLayout(vv, songs);
+                songView.singerBtn.Text = songs.name;
+                ///鐐瑰嚮鎾斁浜嬩欢
+                songView.clickBtn.MouseUpEventHandler += (sender, e) =>
+                {
+                    System.Threading.Tasks.Task.Run(() =>
+                    {
+                        System.Threading.Thread.Sleep(50);
+                        Application.RunOnMainThread(() =>
+                        {
+                            //绉婚櫎鐣岄潰
+                            A31MusicModel.Current.functionMusic.SetAttrState("song_name", songView.songBtn.Text);
+                            A31MusicModel.Current.functionMusic.SetAttrState("playlist_name", listName);
+                            MainPage.BasePageView.RemoveViewByTag("Music");
+                            Dictionary<string, string> dic = new Dictionary<string, string>();
+                            dic.Add("song_name", songView.songBtn.Text);
+                            dic.Add("playlist_name", listName);
+                            SendMethod.sendMethod.SendControlCommand(A31MusicModel.Current.functionMusic, dic);
+                        });
+                    });
+                };
+
+            }
+
+        }
+    }
+}
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/A31USBMusicList.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/A31USBMusicList.cs
index 3faba9c..8e70d6e 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/A31USBMusicList.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/A31USBMusicList.cs
@@ -54,9 +54,16 @@
                 //        });
                 //    }
                 //});
-                var list = SendMethod.GetUsbList(A31MusicModel.Current);
+
                 A31MusicModel.Current.USBList.Clear();
-                A31MusicModel.Current.USBList.AddRange(list);
+                var list = SendMethod.GetUsbList(A31MusicModel.Current);
+                foreach (var song in list) {
+                    Songs music = new Songs();
+                    music.name = song.Title;
+                    music.size = song.Size;
+                    music.time = song.Duration;
+                    A31MusicModel.Current.USBList.Add(music);
+                }
                 Show();
                 middViewLayout.EndHeaderRefreshing();
             };
@@ -68,14 +75,14 @@
         public void Show()
         {
             middViewLayout.RemoveAll();
-            UI2.FuntionControlView.Music.UpdateThread.playMusuc(middViewLayout, "USB", "USBDiskQueue",A31MusicModel.Current.USBList, A31MusicModel.Current);
+            UI2.FuntionControlView.Music.UpdateThread.PlayMusicClick(middViewLayout, "USB", "USBDiskQueue",A31MusicModel.Current.USBList);
         }
         /// <summary>
         /// 瀹氭椂鏇存柊褰撳墠鎾斁闊充箰
         /// </summary>
         public void UpdateSelectedMusic()
         {
-            UI2.FuntionControlView.Music.UpdateThread.updateThread(this, middViewLayout, A31MusicModel.Current);
+            UI2.FuntionControlView.Music.UpdateThread.updateCurrMusicThread(this, middViewLayout, A31MusicModel.Current);
         }
 
     }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs
index 01c7106..5ef69f3 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs
@@ -3,6 +3,8 @@
 using Shared;
 using Shared.IO;
 using System.Net;
+using HDL_ON.Entity;
+
 namespace HDL_ON.UI.Music
 {
     public class MusicMain : FrameLayout
@@ -56,19 +58,22 @@
         /// <summary>
         ///  鏄剧ず鍔犺浇鐣岄潰
         /// </summary>
-        public  static Loading loading = new Loading();
+        public static Loading loading = new Loading();
         /// <summary>
         /// 瀹氫箟鍏ㄥ眬瀵硅薄
         /// </summary>
         VerticalRefreshLayout verticalRefresh;
+        /// <summary>
+        /// 涓轰簡闊充箰鍒锋柊鐘舵�佸畾涔夊叏灞�瀵硅薄
+        /// </summary>
+        MusicView musicView = new MusicView();
         public void Show()
         {
-
             #region 鐣岄潰甯冨眬
             this.BackgroundColor = MusicColor.ViewColor;
             var topView = new TopView();
             this.AddChidren(topView.TopFLayoutView());
-            topView.topNameBtn.TextID =StringId.a31Music;
+            topView.topNameBtn.TextID = StringId.a31Music;
             topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
             {
                 RemoveFromParent();
@@ -84,200 +89,86 @@
 
             verticalRefresh.BeginHeaderRefreshingAction += () =>
             {
-                SeachMusic(false);
+
+                SeachMusic();
+                verticalRefresh.EndHeaderRefreshing();
 
             };
             this.AddChidren(loading);
+            SeachMusic();
 
-            if (A31MusicModel.A31MusicModelList.Count == 0)
-            {
-                SeachMusic(true);
-            }
-            else
-            {
-                clearA31Threads();
-               //verticalRefresh.RemoveAll();
-                for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
-                {
-                    var a31player = A31MusicModel.A31MusicModelList[i];
-                    ///杩欎釜鐘舵�佹槸涔嬪墠淇濆瓨鐨勶紝鍔犺浇瀹屾垚鍚庤鏍囪涓轰笉鍦ㄧ嚎锛屽悗闈㈠啀璇诲彇姝g‘鐨勭姸鎬�
-                    if (!a31player.IsCanShow)
-                    {
-                        continue;
-                    }
-                    if (A31MusicModel.A31MusicModelList.Count - 1 == i)
-                    {
-                        a31player.IsEnd = true;
-                    }
-                    else
-                    {
-                        a31player.IsEnd = false;
-                    }
-                    ///鍔犺浇鐣岄潰鏃堕粯璁や笉鍦ㄧ嚎
-                    ///杩欓噷鏍囪鏄负浜嗕笉璇诲彇涓嶅湪绾挎挱鏀惧櫒鐘舵��
-                    a31player.IsOnLine = false;
-                    MusicListView(a31player);
-                }
-                ///璇诲彇姝g‘鐨勪俊鎭紝鍖呮嫭IP鍜岀鍙e強鍚嶇О
-                SendMethod.Seach((obj) =>
-                {
-                    try
-                    {
-                        if (obj == null)
-                        {
-                            ///杩欓噷瑕佽鍙栦富浠庡叧绯�
-                            readServerOrClientMode();
-                            A31MusicModel.Save();
-                            return;
-                        }
-                        var a31MusicModel = A31MusicModel.A31MusicModelList.Find((music) => music.UniqueDeviceName == obj.UniqueDeviceName);
-                        if (a31MusicModel != null)
-                        {
-                            a31MusicModel.IPAddress = obj.IPAddress;
-                            a31MusicModel.Port = obj.Port;
-                            a31MusicModel.Name = obj.Name;
-                            a31MusicModel.IsCanShow = true;
-                            a31MusicModel.IsOnLine = true;
-                        }
-                    }
-                    catch (Exception e) { MainPage.Log(e.Message); }
-                });
-            }
         }
         /// <summary>
         /// 鍒锋柊鎾斁鍣ㄥ垪琛�
         /// </summary>
-        /// <param name="Yes">鏄惁鏄剧ず鍒锋柊鍥炬爣</param>
-        void SeachMusic(bool Yes = false)
+        void SeachMusic()
         {
-            for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
+            Application.RunOnMainThread(() =>
             {
-                var a31player = A31MusicModel.A31MusicModelList[i];
-                a31player.IsCanShow = false;
-                a31player.IsOnLine = false;
-            }
-            if (Yes)
-            {
-                //涓轰簡绗竴娆¤繘鏉og涓�涓�;
-                loading.Start();
-            }
-            SendMethod.Seach((obj) =>
-            {
-                if (obj == null)
-                {
-                    readServerOrClientMode();
-                    A31MusicModel.Save();
-                    if (!Yes)
-                    {
-                        ///绛夊緟璺戝畬鍦ㄥ叧闂�
-                        verticalRefresh.EndHeaderRefreshing();
-                    }
-                    Application.RunOnMainThread(() =>
-                    {
-                        if (Yes)
-                        {
-                            //涓轰簡绗竴娆¤繘鏉og涓�涓�;
-                            loading.Hide();
-                        }
-                        verticalRefresh.RemoveAll();
-                        for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
-                        {
-                            var a31player = A31MusicModel.A31MusicModelList[i];
-                            //杩欎釜鐘舵�佹槸涔嬪墠淇濆瓨鐨勶紝鍔犺浇瀹屾垚鍚庤鏍囪涓轰笉鍦ㄧ嚎锛屽悗闈㈠啀璇诲彇姝g‘鐨勭姸鎬�
-                            if (!a31player.IsCanShow)
-                            {
-                                continue;
-                            }
-                            if (A31MusicModel.A31MusicModelList.Count - 1 == i)
-                            {
-                                a31player.IsEnd = true;
-                            }
-                            else
-                            {
-                                a31player.IsEnd = false;
-                            }
-                            MusicListView(a31player);
-                        }
-                       //A31MusicModel.ReadMusicStates();
+                verticalRefresh.RemoveAll();
 
-                    });
-                    return;
-                }
-                var a31MusicModel = A31MusicModel.A31MusicModelList.Find((music) => { return music.UniqueDeviceName == obj.UniqueDeviceName; });
-                if (a31MusicModel == null)
+                var musicListFunction = SendMethod.sendMethod.GetMusicList;
+                for (int i = 0; i < musicListFunction.Count; i++)
                 {
-                    //涓嶆槸鎴戜滑鏀寔鐨勫搧鐗屼笉鏀寔
-                    if (obj.Name != null)
+                    var function = musicListFunction[i];
+                    var music = A31MusicModel.A31MusicModelList.Find((music) => music.functionMusic.deviceId == function.deviceId);
+                    if (music == null)
                     {
-                        obj.sid = "030101123456780909020123AABB" + obj.UniqueDeviceName;
-                        A31MusicModel.A31MusicModelList.Add(obj);
+                        A31MusicModel.A31MusicModelList.Add(new A31MusicModel { functionMusic = function });
+                    }
+                    else
+                    {
+                        music.functionMusic = function;
                     }
                 }
-                else
+
+
+                for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
                 {
-                    a31MusicModel.IPAddress = obj.IPAddress;
-                    a31MusicModel.Port = obj.Port;
-                    a31MusicModel.Name = obj.Name;
-                    a31MusicModel.IsCanShow = true;
-                    a31MusicModel.IsOnLine = true;
+                    var a31player = A31MusicModel.A31MusicModelList[i];
+                    MusicListView(a31player);
                 }
+
             });
 
         }
         /// <summary>
         /// 鏄剧ず闊充箰鍒楄〃鐨勬柟娉�
         /// </summary>
-        void MusicListView(A31MusicModel a31player)
+        void MusicListView(A31MusicModel player) 
         {
-            MusicView musicView = new MusicView();
             musicView.View(verticalRefresh);
-            musicView.singerBtn.Text = a31player.A31PlayStatus.Artist;
-            musicView.songNameBtn.Text = a31player.A31PlayStatus.Title;
-            musicView.musicNameBtn.Text = new View.DialogView { }.NamePlayer(a31player);
-            if (a31player.IsEnd)
-            {
-                musicView.muiscFl.Height = Application.GetRealHeight(12 + 139 + 12);
-            }
+            musicView.singerBtn.Text = player.functionMusic.GetAttrState("song_name");
+            musicView.songNameBtn.Text = player.functionMusic.GetAttrState("song_name");
+            musicView.musicNameBtn.Text = player.functionMusic.name;
+            //if (player.IsEnd)
+            //{
+            //    musicView.muiscFl.Height = Application.GetRealHeight(12 + 139 + 12);
+            //}
 
             musicView.collectIconBtn.MouseUpEventHandler += (sender, e) =>
             {
                 musicView.collectIconBtn.IsSelected = !musicView.collectIconBtn.IsSelected;
-                if (a31player.ServerClientType == 1)
+                if (musicView.collectIconBtn.IsSelected)
                 {
-                    if (musicView.collectIconBtn.IsSelected)
-                    {
-                        a31player.MainPlayCollection = true;
-                    }
-                    else
-                    {
-                        a31player.MainPlayCollection = false;
-                    }
+                    player.functionMusic.collect = true;
                 }
                 else
                 {
-                    if (musicView.collectIconBtn.IsSelected)
-                    {
-                        a31player.collect = true;
-                    }
-                    else
-                    {
-                        a31player.collect = false;
-                    }
+                    player.functionMusic.collect = false;
                 }
-                A31MusicModel.Save();
             };
 
             EventHandler<MouseEventArgs> clickMergence = (sender, e) =>
             {
-                if (a31player.ServerClientType == 0)
-                {
-                    new View.DialogView { }.PlayMergence(a31player);
-                }
-                else if (a31player.ServerClientType == 1)
-                {
-                    new View.DialogView { }.DetachPlayMergence(a31player);
-
-                }
+                //if (player.ServerClientType == 0)
+                //{
+                //    new View.DialogView { }.PlayMergence(player);
+                //}
+                //else if (player.ServerClientType == 1)
+                //{
+                //    new View.DialogView { }.DetachPlayMergence(player);
+                //}
             };
             musicView.mergeBjBtn.MouseUpEventHandler += clickMergence;
             musicView.mergeBtn.MouseUpEventHandler += clickMergence;
@@ -285,7 +176,8 @@
 
             EventHandler<MouseEventArgs> clickPlayView = (sender, e) =>
             {
-                A31MusicModel.Current = a31player;//褰撳墠鎾斁鍣�
+
+                A31MusicModel.Current = player;
                 var a31PlayMusicPage = new A31PlayMusicPage();
                 MainPage.BasePageView.AddChidren(a31PlayMusicPage);
                 a31PlayMusicPage.Show();
@@ -302,7 +194,10 @@
             musicView.prevBtn.MouseDownEventHandler += (sender, e) =>
             {
                 musicView.prevBtn.IsSelected = true;
-                SendMethod.Previous(a31player);
+                player.functionMusic.SetAttrState("song_step", "up");
+                Dictionary<string, string> dic = new Dictionary<string, string>();
+                dic.Add("song_step", "up");
+                SendMethod.sendMethod.SendControlCommand(player.functionMusic, dic);
             };
             musicView.prevBtn.MouseUpEventHandler += (sender, e) =>
             {
@@ -311,24 +206,30 @@
             ///鏆傚仠/鎾斁鐐瑰嚮浜嬩欢
             musicView.playBtn.MouseDownEventHandler += (sender, e) =>
             {
+                string status = "off";
                 if (musicView.playBtn.IsSelected)
                 {
                     musicView.playBtn.IsSelected = false;
-                    SendMethod.Pause(a31player);
-                    a31player.A31PlayStatus.status = "pause";
+                    status = "off";
                 }
                 else
                 {
                     musicView.playBtn.IsSelected = true;
-                    SendMethod.Play(a31player);
-                    a31player.A31PlayStatus.status = "play";
+                    status = "on";
                 }
+                player.functionMusic.SetAttrState("on_off", status);
+                Dictionary<string, string> dic = new Dictionary<string, string>();
+                dic.Add("on_off", status);
+                SendMethod.sendMethod.SendControlCommand(player.functionMusic, dic);
             };
             ///涓嬩竴鏇茬偣鍑讳簨浠�
             musicView.nextBtn.MouseDownEventHandler += (sender, e) =>
             {
                 musicView.nextBtn.IsSelected = true;
-                SendMethod.Next(a31player);
+                player.functionMusic.SetAttrState("song_step", "down");
+                Dictionary<string, string> dic = new Dictionary<string, string>();
+                dic.Add("song_step", "down");
+                SendMethod.sendMethod.SendControlCommand(player.functionMusic, dic);
             };
             musicView.nextBtn.MouseUpEventHandler += (sender, e) =>
             {
@@ -340,17 +241,20 @@
                 while (true)
                 {
                     System.Threading.Thread.Sleep(1000);
-                    if (!a31player.IsOnLine)
+                    if (!player.functionMusic.online)
                     {
+                        ///涓嶅湪绾夸笉璇荤姸鎬�
                         continue;
                     }
-                    SendMethod.ReadStatus(a31player);
+                    //SendMethod.ReadStatus(player);
+                     SendMethod.sendMethod.RefreshDeviceStatus(player.functionMusic,new List<string> { player.functionMusic.deviceId });
+                 
                     Application.RunOnMainThread(() =>
                     {
-                        musicView.singerBtn.Text = a31player.A31PlayStatus.Artist;
-                        musicView.songNameBtn.Text = a31player.A31PlayStatus.Title;
-                        musicView.musicNameBtn.Text = new View.DialogView { }.NamePlayer(a31player);
-                        if (a31player.A31PlayStatus.status == "play")
+                        musicView.singerBtn.Text = player.functionMusic.GetAttrState("song_name");
+                        musicView.songNameBtn.Text = player.functionMusic.GetAttrState("song_name");
+                        musicView.musicNameBtn.Text = player.functionMusic.name;
+                        if (player.A31PlayStatus.status == "play")
                         {
                             musicView.playBtn.IsSelected = true;
                         }
@@ -358,10 +262,10 @@
                         {
                             musicView.playBtn.IsSelected = false;
                         }
-                        musicView.regionBtn.Text = a31player.GetRoomListName();
-                        if (a31player.ServerClientType == 1)
+                        musicView.regionBtn.Text = player.functionMusic.GetRoomListName();
+                        if (player.ServerClientType == 1)
                         {
-                            if (a31player.MainPlayCollection)
+                            if (player.MainPlayCollection)
                             {
                                 musicView.collectIconBtn.IsSelected = true;
                             }
@@ -372,7 +276,7 @@
                         }
                         else
                         {
-                            if (a31player.collect)
+                            if (player.functionMusic.collect)
                             {
                                 musicView.collectIconBtn.IsSelected = true;
                             }
@@ -388,99 +292,67 @@
             musicThread.Start();
             threadLists.Add(musicThread);
         }
+
         /// <summary>
-        /// 璇诲彇涓讳粠鍏崇郴
+        ///鎸囧畾鍒锋柊鐣岄潰
         /// </summary>
-        void readServerOrClientMode()
+        /// <param name="strView">鍒ゆ柇瀛楃</param>
+        public void RefreshView(string strView)
         {
-            try
+            Application.RunOnMainThread(() =>
             {
-                for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
+                try
                 {
-                    var a31player = A31MusicModel.A31MusicModelList[i];
-                    if (!a31player.IsOnLine)
+                  
+                    for (int i = MainPage.BasePageView.ChildrenCount - 1; 0 <= i; i--)
                     {
-                        continue;
-                    }
-                    try
-                    {
-                        a31player.ServerClientType = 0;
-                        var result = SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:getSlaveList");
-                        if (result == null && result == "Failed")
+                        var view = MainPage.BasePageView.GetChildren(i);
+                        if (strView == view.Tag.ToString())
                         {
-                            result = SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:getSlaveList");
-                        }
-                        if (result != null && result != "Failed")
-                        {
-                            a31player.Slave = Newtonsoft.Json.JsonConvert.DeserializeObject<Slaves>(result);
-                        }
-                    }
-                    catch (Exception e)
-                    {
-                        var d = e.Message;
-                    }
-                }
-
-                //鍒嗘瀽涓讳粠鍏崇郴
-                for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
-                {
-                    var a31player = A31MusicModel.A31MusicModelList[i];
-                    if (!a31player.IsOnLine)
-                    {
-                        continue;
-                    }
-                    try
-                    {
-                        if (a31player.Slave != null && "0" != a31player.Slave.slaves)
-                        {
-                            a31player.ServerClientType = 1;//涓荤殑
-                            string str = a31player.Name;
-                            for (int j = 0; j < a31player.Slave.slave_list.Count; j++)
+                            if (view.GetType() == typeof(MusicMain))
                             {
-
-                                var slave = a31player.Slave.slave_list[j];
-                                str = str + "+" + slave.name;
-                                var tempA31Player = A31MusicModel.A31MusicModelList.Find((obj) => slave.uuid.Replace("uuid:", "") == obj.UniqueDeviceName);
-                                if (tempA31Player == null)
-                                {
-                                    A31MusicModel.A31MusicModelList.Add(new A31MusicModel
-                                    {
-                                        sid = "030101123456780909020123AABB" + slave.uuid.Replace("uuid:", ""),
-                                        ServerClientType = -1,//浠庣殑
-                                        IPAddress = slave.ip,
-                                        MainPlayIP = a31player.IPAddress,
-                                        UniqueDeviceName = slave.uuid.Replace("uuid:", ""),
-                                        Name = slave.name,
-                                        IsCanShow = false,
-                                        IsOnLine = false,//true浣滅敤涓轰簡璇诲彇浠庢挱鏀惧櫒鐨勯煶閲�
-                                    });
-                                }
-                                //濡傛灉鎵惧埌灏辨洿鏂颁负浠庣殑
-                                else
-                                {
-                                    tempA31Player.ServerClientType = -1;//浠庣殑
-                                    tempA31Player.IPAddress = slave.ip;
-                                    tempA31Player.MainPlayIP = a31player.IPAddress;
-                                    tempA31Player.Name = slave.name;
-                                    tempA31Player.UniqueDeviceName = slave.uuid.Replace("uuid:", "");
-                                    tempA31Player.IsCanShow = false;
-                                    tempA31Player.IsOnLine = false;//true浣滅敤涓轰簡璇诲彇浠庢挱鏀惧櫒鐨勯煶閲�
-
-                                }
+                                //musicView.singerBtn.Text = player.A31PlayStatus.Artist;
+                                //musicView.songNameBtn.Text = player.A31PlayStatus.Title;
+                                //musicView.musicNameBtn.Text = new View.DialogView { }.NamePlayer(player);
+                                //if (player.A31PlayStatus.status == "play")
+                                //{
+                                //    musicView.playBtn.IsSelected = true;
+                                //}
+                                //else
+                                //{
+                                //    musicView.playBtn.IsSelected = false;
+                                //}
+                                //musicView.regionBtn.Text = player.GetRoomListName();
+                                //if (player.ServerClientType == 1)
+                                //{
+                                //    if (player.MainPlayCollection)
+                                //    {
+                                //        musicView.collectIconBtn.IsSelected = true;
+                                //    }
+                                //    else
+                                //    {
+                                //        musicView.collectIconBtn.IsSelected = false;
+                                //    }
+                                //}
+                                //else
+                                //{
+                                //    if (player.collect)
+                                //    {
+                                //        musicView.collectIconBtn.IsSelected = true;
+                                //    }
+                                //    else
+                                //    {
+                                //        musicView.collectIconBtn.IsSelected = false;
+                                //    }
+                                //}
                             }
-                            a31player.MainPlayName = str;
                         }
-                    }
-                    catch (Exception e)
-                    {
-                        var ss = e.Message;
+
                     }
                 }
-
-            }
-            catch { }
+                catch { }
+            });
         }
-
     }
 
 }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs
index dd36144..bb8f901 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs
@@ -4,12 +4,28 @@
 using System.Net.Sockets;
 using System.Security;
 using System.Text;
+using HDL_ON.DAL.Server;
+using HDL_ON.Entity;
 using Shared;
 
 namespace HDL_ON.UI.Music
 {
     public class SendMethod
     {
+        private static SendMethod m_sendMethod=null;
+        public static SendMethod sendMethod
+        {
+            get
+            {
+                if (m_sendMethod == null)
+                {
+                    m_sendMethod = new SendMethod();
+                }
+                return m_sendMethod;
+            }
+
+        }
+
         /// <summary>
         ///鎼滅储A31闊充箰鎾斁鍣�
         /// </summary>
@@ -209,7 +225,7 @@
                 a31MusicModel.A31PlayStatus.loop = se.SearchForTextOfTag("LoopMode");
                 a31MusicModel.A31PlayStatus.Source = se.SearchForTextOfTag("PlayMedium");
                 a31MusicModel.A31PlayStatus.playSource = se.SearchForTextOfTag("TrackSource");
-                a31MusicModel.A31PlayStatus.TrackURL = se.SearchForTextOfTag("TrackURI").Replace("&", "&amp;amp;"); 
+                a31MusicModel.A31PlayStatus.TrackURL = se.SearchForTextOfTag("TrackURI").Replace("&", "&amp;amp;");
 
             }
             catch (Exception ex)
@@ -221,12 +237,12 @@
                 #region 鏇存柊鍏朵粬鐣岄潰闊充箰鐘舵��
                 Application.RunOnMainThread(() =>
                 {
-                    a31MusicModel.trait_on_off.curValue = a31MusicModel.A31PlayStatus.status == "play" ? "on" : "off";
+                    //a31MusicModel.trait_on_off.curValue = a31MusicModel.A31PlayStatus.status == "play" ? "on" : "off";
                     //Console.WriteLine($"music : {a31MusicModel.sid} : {a31MusicModel.on_off}");
-                    HomePage.UpdataFunctionStates(a31MusicModel);
+                    HomePage.UpdataFunctionStates(a31MusicModel.functionMusic);
                     foreach (var e in A31MusicModel.A31MusicModelList)
                     {
-                        RoomPage.UpdataStates(a31MusicModel);
+                        RoomPage.UpdataStates(e.functionMusic);
                     }
                 });
                 #endregion
@@ -463,7 +479,8 @@
         /// <param name="volume">Volume.</param>
         public static void ControlVolume(int volume, A31MusicModel a31player)
         {
-            System.Threading.Tasks.Task.Run(() => {
+            System.Threading.Tasks.Task.Run(() =>
+            {
                 A31MusicModel.ProgressDateTime = DateTime.Now;
                 try
                 {
@@ -501,9 +518,9 @@
         /// <summary>
         /// 鑾峰彇USb鐨勫垪琛�
         /// </summary>
-        public static List<MusicInfo> GetUsbList(A31MusicModel a31player)
+        public static List<Songs> GetUsbList(A31MusicModel a31player)
         {
-            var musicInfoList = new List<MusicInfo>();
+            var musicInfoList = new List<Songs>();
             musicInfoList.Clear();
             var usbString = GetUSBPlayList(a31player);
             if (usbString == null)
@@ -522,11 +539,11 @@
 
             foreach (SecurityElement track in SecurityElement.FromString(se.Text).SearchForChildByTag("Tracks").Children)
             {
-                MusicInfo musicInfo = new MusicInfo();
+                Songs musicInfo = new Songs();
                 musicInfo.URL = track.SearchForTextOfTag("URL").Replace("&", "&amp;amp;");
                 var metadata = track.SearchForTextOfTag("Metadata").Replace("&", "&amp;");
                 var item = SecurityElement.FromString(metadata).SearchForChildByTag("item");
-                musicInfo.Title = item.SearchForTextOfTag("dc:title").Replace("&", "&amp;amp;"); 
+                musicInfo.Title = item.SearchForTextOfTag("dc:title").Replace("&", "&amp;amp;");
                 musicInfo.Artist = item.SearchForTextOfTag("upnp:artist").Replace("&", "&amp;amp;");
                 musicInfo.Album = item.SearchForTextOfTag("upnp:album").Replace("&", "&amp;amp;");
                 musicInfo.Duration = item.SearchForTextOfTag("res");
@@ -597,7 +614,7 @@
         /// <summary>
         /// 鑾峰彇褰撳墠鎾斁鐨勫垪琛�
         /// </summary>
-        public static  string GetCurrentPlayList(A31MusicModel a31player)
+        public static string GetCurrentPlayList(A31MusicModel a31player)
         {
             System.Text.StringBuilder getPlayList = new System.Text.StringBuilder();
             getPlayList.AppendLine("<?xml version=\"1.0\"encoding=\"utf-8\"?>");
@@ -656,7 +673,7 @@
         /// <param name="musicInfo">鎾斁闊充箰</param>
         /// <param name="listName">鍒楄〃鍚嶇О</param>
         /// <param name="musicList">鎺ㄩ�佸垪琛�(榛樿鎺�50棣�)</param>
-        public  static void PushList(MusicInfo musicInfo, string listName, List<MusicInfo> musicList, A31MusicModel a31player,string musicSource)
+        public static void PushList(MusicInfo musicInfo, string listName, List<MusicInfo> musicList, A31MusicModel a31player, string musicSource)
         {
 
             //鏈�澶у彂閫佺殑鏉℃暟
@@ -739,10 +756,12 @@
 
                 sb.AppendLine("&amp;lt;dc:title&amp;gt;" + tempMusicInfo.Title + "&amp;lt;/dc:title&amp;gt;");
                 sb.AppendLine("&amp;lt;dc:creator&amp;gt;DJ Sanny J&amp;lt;/dc:creator&amp;gt;");
-                if (musicSource== "鎴戠殑鍒楄〃") {
+                if (musicSource == "鎴戠殑鍒楄〃")
+                {
                     sb.AppendLine("&amp;lt;upnp:artist&amp;gt;" + listName + "&amp;lt;/upnp:artist&amp;gt;");
                 }
-                else {
+                else
+                {
                     sb.AppendLine("&amp;lt;upnp:artist&amp;gt;" + tempMusicInfo.Artist + "&amp;lt;/upnp:artist&amp;gt;");
                 }
                 sb.AppendLine("&amp;lt;upnp:album&amp;gt;" + tempMusicInfo.Album + "&amp;lt;/upnp:album&amp;gt;");
@@ -778,7 +797,7 @@
             Play(a31player.IPAddress, a31player.Port, playString.ToString());
         }
 
-       static void SendMusicLists(string ip, int port, string soapAction, string listInfo)
+        static void SendMusicLists(string ip, int port, string soapAction, string listInfo)
         {
             System.Net.WebClient webClient = new System.Net.WebClient();
             webClient.Headers.Add("SOAPACTION", "\"urn:schemas-wiimu-com:service:PlayQueue:1#" + soapAction + "\"");
@@ -788,13 +807,13 @@
                 byte[] recevieBytes = webClient.UploadData(new Uri("http://" + ip + ":" + port + "/upnp/control/PlayQueue1"), "POST", System.Text.Encoding.UTF8.GetBytes(listInfo));
                 var s = System.Text.Encoding.UTF8.GetString(recevieBytes, 0, recevieBytes.Length);
             }
-            catch(Exception e)
+            catch (Exception e)
             {
                 var d = e.Message;
             }
         }
 
-       static void Play(string ip, int port, string info)
+        static void Play(string ip, int port, string info)
         {
             System.Net.WebClient webClient = new System.Net.WebClient();
             webClient.Headers.Add("SOAPACTION", "\"urn:schemas-wiimu-com:service:PlayQueue:1#PlayQueueWithIndex\"");
@@ -882,5 +901,104 @@
             public string creator = string.Empty;
         }
 
+        /// <summary>
+        /// 鑾峰彇闊充箰鍒楄〃
+        /// </summary>
+        public List<Function> GetMusicList
+        {
+            get
+            {
+                return FunctionList.List.GetMusicList();
+            }
+        }
+        /// <summary>
+        /// 鍙戦�佹帶鍒跺懡浠�
+        /// </summary>
+        /// <param name="function">褰撳墠璁惧</param>
+        /// <param name="dic">鍙戦�佹帶鍒舵暟鎹�</param>
+        public void SendControlCommand(Function function, Dictionary<string, string> dic)
+        {
+            new System.Threading.Thread(() =>
+            {
+                DriverLayer.Control.Ins.SendWriteCommand(function, dic);
+            })
+            { IsBackground = true }.Start();
+        }
+
+        /// <summary>
+        /// 鍒锋柊璁惧鐘舵��
+        /// </summary>
+        /// <returns></returns>
+        public void RefreshDeviceStatus(Function music, List<string> functionIds)
+        {
+            try
+            {
+                Dictionary<string, object> d = new Dictionary<string, object>();
+                d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+                d.Add("deviceIds", functionIds);
+                var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_RefreshDeviceStatus);
+                if (responsePackNew.Code != "0")
+                {
+                    return;
+                }
+                //鏁版嵁杩斿簭鍒楀寲涓篎unction瀵硅薄
+                var str = Newtonsoft.Json.JsonConvert.SerializeObject(responsePackNew.Data.ToString());
+                var function = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(str);
+                if (function == null)
+                {
+                    return;
+                }
+                music.name = function.name;
+                music.sid = function.sid;
+                music.spk = function.spk;
+                music.status = function.status;
+                music.roomIds = function.roomIds;
+                music.attributes = function.attributes;
+            }
+            catch { }
+        }
+
+        /// <summary>
+        /// 鑾峰彇闊充箰鍒楄〃
+        /// </summary>
+        /// <param name="music"></param>
+        /// <returns></returns>
+        public void GetPalyList(Function music)
+        {
+            try
+            {
+                Dictionary<string, object> d = new Dictionary<string, object>();
+                d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+                d.Add("deviceIds", new List<string> { music.deviceId });
+                var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_PlayerList);
+                if (responsePackNew.Code != "0")
+                {
+                    return;
+                }
+                //鏁版嵁杩斿簭鍒楀寲涓篎unction瀵硅薄
+                var str = Newtonsoft.Json.JsonConvert.SerializeObject(responsePackNew.Data.ToString());
+                var palyLists = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PalyListInfo>>(str);
+                if (palyLists == null)
+                {
+                    palyLists =new List<PalyListInfo>();
+                }
+                A31MusicModel.Current.palyListInfos = palyLists;
+            }
+            catch
+            {
+            }
+
+        }
+       
+        /// <summary>
+        ///璇锋眰鏈嶅姟鍣紙涓庝綇瀹呮湁鍏�:渚嬪锛沨omeId锛� 
+        /// </summary>
+        /// <returns></returns>
+        public  ResponsePackNew RequestServerhomeId(object o, string api_Url, int mTimeout = 5)
+        {
+            var requestJson = HttpUtil.GetSignRequestJson(o);
+            return HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout);
+
+        }
     }
 }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/UpdateThread.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/UpdateThread.cs
index 664c342..0f2196d 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/UpdateThread.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/UpdateThread.cs
@@ -15,7 +15,7 @@
         /// <param name="frame">褰撳墠鐣岄潰</param>
         /// <param name="middViewLayout">姣忎竴鏉¢煶涔愮殑涓绘帶浠�</param>
         /// <param name="a31MusicModel">鐐瑰墠鎾斁鍣�</param>
-        public static void updateThread(FrameLayout frame, VerticalRefreshLayout middViewLayout, A31MusicModel a31MusicModel)
+        public static void updateCurrMusicThread(FrameLayout frame, VerticalRefreshLayout middViewLayout, A31MusicModel a31MusicModel)  
         {
             System.Threading.Thread updateSelectedMusicThread = new System.Threading.Thread(() =>
             {
@@ -68,7 +68,7 @@
         /// <param name="listName">鎾斁鍒楄〃鍚�</param>
         /// <param name="musicList">鎾斁闊充箰鍒楄〃</param>
         /// <param name="a31MusicModel">闊充箰鎾斁鍣�</param>
-        public static void playMusuc(VerticalRefreshLayout middViewLayout, string musicSource, string listName,List<MusicInfo> musicList, A31MusicModel a31MusicModel, FrameLayout frame=null)
+        public static void PlayMusicClick(VerticalRefreshLayout middViewLayout, string musicSource, string listName,List<Songs> musicList, FrameLayout frame=null) 
         {
             for (int i = 0; i < musicList.Count; i++)
             {
@@ -136,7 +136,7 @@
                     if (songView.loveIcon.IsSelected)
                     {
                         ///鏌ユ壘闊充箰鏄惁瀛樺湪鍦ㄥ垪琛�
-                        var music1 = A31MusicModel.Current.LoveMusicInfoList.Find((m) => m.URL == songs.URL);
+                        var music1 = A31MusicModel.Current.LoveMusicInfoList.Find((m) => m.name == songs.name);
                         if (music1 == null)
                         {
                             ///娌℃湁瀛樺湪灏辨坊鍔�
@@ -146,7 +146,7 @@
                     else
                     {
                         ///鏌ユ壘闊充箰鏄惁瀛樺湪鍦ㄥ垪琛�
-                        var music1 = A31MusicModel.Current.LoveMusicInfoList.Find((m) => m.URL == songs.URL);
+                        var music1 = A31MusicModel.Current.LoveMusicInfoList.Find((m) => m.name == songs.name);
                         if (music1 != null)
                         {
                             ///瀛樺湪灏卞垹闄�
@@ -175,22 +175,20 @@
                         Application.RunOnMainThread(() =>
                         {
                             //绉婚櫎鐣岄潰
-                            A31MusicModel.Current.A31PlayStatus.Title = songView.songBtn.Text;
                             if (frame != null)
                             {
                                 frame.RemoveFromParent();
                             }
                             MainPage.BasePageView.RemoveViewByTag("Music");
+
+                            A31MusicModel.Current.functionMusic.SetAttrState("song_name", songView.songBtn.Text);
+                            A31MusicModel.Current.functionMusic.SetAttrState("playlist_name", listName);
+                            Dictionary<string, string> dic = new Dictionary<string, string>();
+                            dic.Add("song_name", songView.songBtn.Text);
+                            dic.Add("playlist_name", listName);
                             System.Threading.Tasks.Task.Run(() =>
                             {
-                                if (musicSource == "鏈湴闊充箰"|| musicSource == "鎴戠殑鏈�鐖�"|| musicSource == "鎴戠殑鍒楄〃")
-                                {
-                                    SendMethod.PushList(songs, listName, musicList, a31MusicModel,musicSource);
-                                }
-                                else if (musicSource == "USB"|| musicSource == "鎾斁鍒楄〃")
-                                {
-                                    SendMethod.ListMusicPlay(listName, songView.clickBtn.Tag, A31MusicModel.Current);
-                                }
+                                SendMethod.sendMethod.SendControlCommand(A31MusicModel.Current.functionMusic, dic);
                             });
                         });
                     });
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/View/DialogView.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/View/DialogView.cs
index 1c15666..f8cc250 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/View/DialogView.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/View/DialogView.cs
@@ -9,7 +9,7 @@
         ///寮圭獥鏂囦欢澶瑰垪琛ㄧ晫闈�
         /// </summary>
         /// <param name="musicInfo"></param>
-        public void FieListView(MusicInfo musicInfo)
+        public void FieListView(Songs musicInfo)
         {
             #region
             //涓绘帶浠�
@@ -114,7 +114,7 @@
             FileView(dialog, verticalScrolViewLayout, musicInfo);
 
         }
-        void FileView(Dialog dialog, VerticalScrolViewLayout verticalScrolViewLayout, MusicInfo musicInfo)
+        void FileView(Dialog dialog, VerticalScrolViewLayout verticalScrolViewLayout, Songs musicInfo)
         {
             verticalScrolViewLayout.RemoveAll();
             for (int i = 0; i < A31MusicModel.Current.FileLists.Count; i++)
@@ -207,7 +207,7 @@
                 EventHandler<MouseEventArgs> click = (sender, e) =>
                 {
 
-                    if (null == list.MusicInfoList.Find((music) => music.URL == musicInfo.URL))
+                    if (null == list.MusicInfoList.Find((music) => music.name == musicInfo.name))
                     {
                         list.MusicInfoList.Add(musicInfo);
                         A31MusicModel.Save();
@@ -939,7 +939,7 @@
                                     for (int j = 0; j < A31MusicModel.A31MusicModelList.Count; j++)
                                     {
                                         var music = A31MusicModel.A31MusicModelList[j];
-                                        if(music.collect && !mainModelCollection)
+                                        if(music.functionMusic.collect && !mainModelCollection)
                                         {
                                             mainModelCollection = true;
                                         }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/View/MyListView.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/View/MyListView.cs
index c9b4aab..86bf14f 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/View/MyListView.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/View/MyListView.cs
@@ -91,20 +91,21 @@
         };
         public void frameLayout(FrameLayout frame,A31MusicModel a31MusicModel)
         {
-            switch (a31MusicModel.A31PlayStatus.loop)
+           var mode= a31MusicModel.functionMusic.GetAttrState("mode");
+            switch (mode)
             {
                 //0鍒楄〃寰幆锛�1鍗曟洸寰幆锛�2闅忔満鎾斁;
-                case "0":
+                case "list_cycle":
                     orderIconBtn.UnSelectedImagePath = "MusicIcon/list.png";
                     orderTxetBtn.Text = Language.StringByID(StringId.listMode);
                     break;
 
-                case "1":
+                case "single_cycle/order":
                     orderIconBtn.UnSelectedImagePath = "MusicIcon/single.png";
                     orderTxetBtn.Text = Language.StringByID(StringId.singleMode);
 
                     break;
-                case "2":
+                case "random":
                     orderIconBtn.UnSelectedImagePath = "MusicIcon/random.png";
                     orderTxetBtn.Text = Language.StringByID(StringId.randomMode);
                     break;

--
Gitblit v1.8.0