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;"); - 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;"); - 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;"); + a31MusicModel.A31PlayStatus.TrackURL = se.SearchForTextOfTag("TrackURI").Replace("&", "&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;"); var metadata = track.SearchForTextOfTag("Metadata").Replace("&", "&"); var item = SecurityElement.FromString(metadata).SearchForChildByTag("item"); - musicInfo.Title = item.SearchForTextOfTag("dc:title").Replace("&", "&amp;"); + musicInfo.Title = item.SearchForTextOfTag("dc:title").Replace("&", "&amp;"); musicInfo.Artist = item.SearchForTextOfTag("upnp:artist").Replace("&", "&amp;"); musicInfo.Album = item.SearchForTextOfTag("upnp:album").Replace("&", "&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("&lt;dc:title&gt;" + tempMusicInfo.Title + "&lt;/dc:title&gt;"); sb.AppendLine("&lt;dc:creator&gt;DJ Sanny J&lt;/dc:creator&gt;"); - if (musicSource== "鎴戠殑鍒楄〃") { + if (musicSource == "鎴戠殑鍒楄〃") + { sb.AppendLine("&lt;upnp:artist&gt;" + listName + "&lt;/upnp:artist&gt;"); } - else { + else + { sb.AppendLine("&lt;upnp:artist&gt;" + tempMusicInfo.Artist + "&lt;/upnp:artist&gt;"); } sb.AppendLine("&lt;upnp:album&gt;" + tempMusicInfo.Album + "&lt;/upnp:album&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