using System; using System.Collections.Generic; using System.Text; using Shared.SimpleControl.Phone; using Shared; using Shared.SimpleControl.R; using SmartHome.UI.SimpleControl.Pad.Music; namespace Shared.SimpleControl.Pad.Music { /// ///源选择界面 /// class SourcePage : Shared.FrameLayout { /// /// 显示出当前界面 /// /// public void Show (MusicModel musicModel, FrameLayout SettingView) { //源标题 var titleBtn = new Button { Height = Application.GetRealHeight (150), TextID = MyInternationalizationString.MusicSource, TextSize = 15, BackgroundColor = 0xFF111111, TextAlignment = TextAlignment.Center }; this.AddChidren (titleBtn); //中间滑动栏 var frameLayout = new FrameLayout (); frameLayout.Y = Application.GetRealHeight (150); frameLayout.BackgroundImagePath = "MusicIcon/HomepageBackgroun.png"; this.AddChidren (frameLayout); var middle = new VerticalScrolViewLayout (); frameLayout.AddChidren (middle); var rowSD = new RowLayout { Width = LayoutParams.MatchParent, Height = Application.GetRealHeight (100), }; middle.AddChidren (rowSD); var SDhoto = new Button { Width = Application.GetRealWidth (80), Height = Application.GetRealHeight (76), UnSelectedImagePath = "MusicIcon/card.png", SelectedImagePath = "MusicIcon/cardSelected.png", TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (30), Gravity = Gravity.CenterVertical, }; rowSD.AddChidren (SDhoto); //SD卡源图标 var musicSD = new Button { Height = Application.GetRealHeight (100), TextID = MyInternationalizationString.SDcard, TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (130), }; rowSD.AddChidren (musicSD); //读取SD卡列表 var readSDList = new Button { Width = Application.GetRealWidth (65), Height = Application.GetRealHeight (76), UnSelectedImagePath = "MusicIcon/Listreading.png", SelectedImagePath = "MusicIcon/ListreadingSelected.png", X = Application.GetRealWidth (365), Gravity = Gravity.CenterVertical, }; rowSD.AddChidren (readSDList); //刷新SD卡列表 var refreshSDList = new Button { Width = Application.GetRealWidth (80), Height = Application.GetRealHeight (76), UnSelectedImagePath = "MusicIcon/refurbish.png", SelectedImagePath = "MusicIcon/refurbishSelected.png", X = Application.GetRealWidth (460), Gravity = Gravity.CenterVertical, }; rowSD.AddChidren (refreshSDList); refreshSDList.MouseUpEventHandler += (sender, e) => { refreshSDList.IsSelected = true; MainPage.Loading.Start (); System.Threading.Tasks.Task.Run (() => { Control.ControlBytesSend (Command.ControlMusicModel, musicModel.SubnetID, musicModel.DeviceID, MusicModel.MusiceBytes ("*S1UPDATELIST")); System.Threading.Thread.Sleep (4000); Application.RunOnMainThread (() => { MainPage.Loading.Hide (); refreshSDList.IsSelected = false; }); }); }; var nextSD = new Button { Width = Application.GetRealWidth (87), Height = Application.GetRealHeight (100), UnSelectedImagePath = "MusicIcon/Homepagedown.png", SelectedImagePath = "MusicIcon/HomepagedownSelected.png", X = Application.GetRealWidth (550), }; rowSD.AddChidren (nextSD); var sdContentSD = new VerticalScrolViewLayout { Width = LayoutParams.MatchParent, Height = 0, BackgroundColor = 0x993A3B3B, }; readSDList.MouseUpEventHandler += (sender, e) => { readSDList.IsSelected = true; MainPage.Loading.Start (); System.Threading.Tasks.Task.Run (() => { readPlayList (musicModel, 1); Application.RunOnMainThread (() => { MainPage.Loading.Hide (); readSDList.IsSelected = false; nextSD.IsSelected = true; for (int i = 0; i < musicModel.SDCardListList.Count; i++) { var rowLa = new RowLayout { Height = Application.GetRealHeight (100), }; sdContentSD.AddChidren (rowLa); var number = new Button { Width = LayoutParams.MatchParent, Height = LayoutParams.MatchParent, Text = musicModel.SDCardListList [i].name, }; rowLa.AddChidren (number); string typeAndListNumber = musicModel.SDCardListList [i].number; number.MouseUpEventHandler += (sender1, e1) => { Button button = (Button)sender1; Songlist songlist = new Songlist { }; MainPage.MainFrameLayout.AddChidren (songlist); songlist.Show (musicModel.SDCardSongList.FindAll ((song) => { return song.number.StartsWith (typeAndListNumber); }), musicModel, 1, SettingView); }; var numbernext = new Button { Width = Application.GetRealWidth (87), Height = Application.GetRealHeight (100), UnSelectedImagePath = "MusicIcon/Next.png", X = Application.GetRealWidth (550), Tag = musicModel, }; rowLa.AddChidren (numbernext); ////歌曲列表 numbernext.MouseDownEventHandler += (sender1, e1) => { Button button = (Button)sender1; Songlist songlist = new Songlist { Width = LayoutParams.MatchParent, Height = LayoutParams.MatchParent, }; MainPage.MainFrameLayout.AddChidren (songlist); songlist.Show (musicModel.SDCardSongList.FindAll ((song) => { return song.number.StartsWith (typeAndListNumber); }), musicModel, 1, SettingView); }; } sdContentSD.Height = Application.GetRealHeight (musicModel.SDCardListList.Count * 100); }); }); }; nextSD.MouseUpEventHandler += (sender, e) => { nextSD.IsSelected = !nextSD.IsSelected; if (nextSD.IsSelected) { for (int i = 0; i < musicModel.SDCardListList.Count; i++) { var rowLa = new RowLayout { Width = LayoutParams.MatchParent, Height = Application.GetRealHeight (100), }; sdContentSD.AddChidren (rowLa); var number = new Button { Width = LayoutParams.MatchParent, Height = LayoutParams.MatchParent, Text = musicModel.SDCardListList [i].name, }; rowLa.AddChidren (number); string typeAndListNumber = musicModel.SDCardListList [i].number; number.MouseDownEventHandler += (sender1, e1) => { Button button = (Button)sender1; Songlist songlist = new Songlist { Width = LayoutParams.MatchParent, Height = LayoutParams.MatchParent, }; MainPage.MainFrameLayout.AddChidren (songlist); songlist.Show (musicModel.SDCardSongList.FindAll ((song) => { return song.number.StartsWith (typeAndListNumber); }), musicModel, 1, SettingView); }; var numbernext = new Button { Width = Application.GetRealWidth (87), Height = Application.GetRealHeight (100), UnSelectedImagePath = "MusicIcon/Next.png", X = Application.GetRealWidth (550), Tag = musicModel, }; rowLa.AddChidren (numbernext); //歌曲列表 numbernext.MouseDownEventHandler += (sender1, e1) => { Button button = (Button)sender1; Songlist songlist = new Songlist { Width = LayoutParams.MatchParent, Height = LayoutParams.MatchParent, }; MainPage.MainFrameLayout.AddChidren (songlist); songlist.Show (musicModel.SDCardSongList.FindAll ((song) => { return song.number.StartsWith (typeAndListNumber); }), musicModel, 1, SettingView); }; } sdContentSD.Height = Application.GetRealHeight (musicModel.SDCardListList.Count * 100); } else { readSDList.IsSelected = false; sdContentSD.Height = 0; } }; middle.AddChidren (sdContentSD); var nasrowlayout = new RowLayout { LineColor = 0x62818181, Width = LayoutParams.MatchParent, Height = Application.GetRealHeight (100), }; middle.AddChidren (nasrowlayout); var nas = new Button { Width = LayoutParams.MatchParent, Height = Application.GetRealHeight (100), //Text = "NAS", TextID = MyInternationalizationString.NAS, TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (130), }; nasrowlayout.AddChidren (nas); var nashoto = new Button { Width = Application.GetRealWidth (80), Height = Application.GetRealHeight (76), UnSelectedImagePath = "MusicIcon/nas.png", SelectedImagePath = "MusicIcon/nasSelected.png", TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (30), Gravity = Gravity.CenterVertical, }; nasrowlayout.AddChidren (nashoto); var readListNAS = new Button { Width = Application.GetRealWidth (65), Height = Application.GetRealHeight (76), UnSelectedImagePath = "MusicIcon/Listreading.png", SelectedImagePath = "MusicIcon/ListreadingSelected.png", X = Application.GetRealWidth (365), Gravity = Gravity.CenterVertical, }; nasrowlayout.AddChidren (readListNAS); var nextnas = new Button { Width = Application.GetRealWidth (87), Height = Application.GetRealHeight (100), UnSelectedImagePath = "MusicIcon/Homepagedown.png", SelectedImagePath = "MusicIcon/HomepagedownSelected.png", TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (550), Gravity = Gravity.CenterVertical, }; nasrowlayout.AddChidren (nextnas); var sdContentNAS = new VerticalScrolViewLayout { Height = 0, BackgroundColor = 0x993A3B3B, }; readListNAS.MouseUpEventHandler += (sender, e) => { readListNAS.IsSelected = true; MainPage.Loading.Start (); System.Threading.Tasks.Task.Run (() => { readPlayList (musicModel, 2); Application.RunOnMainThread (() => { MainPage.Loading.Hide (); readListNAS.IsSelected = false; nextnas.IsSelected = true; for (int i = 0; i < musicModel.NASListList.Count; i++) { var NASrowLayout = new RowLayout { Height = Application.GetRealHeight (100), }; sdContentNAS.AddChidren (NASrowLayout); var listNSA = new Button { Width = LayoutParams.MatchParent, Height = LayoutParams.MatchParent, X = Application.GetRealWidth (30), Text = musicModel.NASListList [i].name, }; NASrowLayout.AddChidren (listNSA); string ListNumberNas = musicModel.NASListList [i].number; listNSA.MouseUpEventHandler += (sender1, e1) => { Songlist NASmusic = new Songlist { Width = LayoutParams.MatchParent, Height = LayoutParams.MatchParent, }; MainPage.MainFrameLayout.AddChidren (NASmusic); NASmusic.Show (musicModel.NasSongList.FindAll ((music) => { return music.number.StartsWith (ListNumberNas); }), musicModel, 2, SettingView); }; var numbernext = new Button { Width = Application.GetRealWidth (87), Height = Application.GetRealHeight (100), UnSelectedImagePath = "MusicIcon/Next.png", X = Application.GetRealWidth (550), Tag = musicModel, }; NASrowLayout.AddChidren (numbernext); ////歌曲列表 numbernext.MouseDownEventHandler += (sender1, e1) => { Button button = (Button)sender1; Songlist Nassonglist = new Songlist { Width = LayoutParams.MatchParent, Height = LayoutParams.MatchParent, }; MainPage.MainFrameLayout.AddChidren (Nassonglist); Nassonglist.Show (musicModel.NasSongList.FindAll ((song) => { return song.number.StartsWith (ListNumberNas); }), musicModel, 2, SettingView); }; } sdContentNAS.Height = Application.GetRealHeight (musicModel.NASListList.Count * 100); }); }); }; nextnas.MouseUpEventHandler += (sender, e) => { nextnas.IsSelected = !nextnas.IsSelected; if (nextnas.IsSelected) { for (int i = 0; i < musicModel.NASListList.Count; i++) { var rowLa = new RowLayout { Width = LayoutParams.MatchParent, Height = Application.GetRealHeight (100), }; sdContentNAS.AddChidren (rowLa); var number = new Button { Width = LayoutParams.MatchParent, Height = LayoutParams.MatchParent, Text = musicModel.NASListList [i].name, }; rowLa.AddChidren (number); string typeAndListNumber = musicModel.NASListList [i].number; number.MouseDownEventHandler += (sender1, e1) => { Button button = (Button)sender1; Songlist songlist = new Songlist { Width = LayoutParams.MatchParent, Height = LayoutParams.MatchParent, }; MainPage.MainFrameLayout.AddChidren (songlist); songlist.Show (musicModel.NasSongList.FindAll ((song) => { return song.number.StartsWith (typeAndListNumber); }), musicModel, 2, SettingView); }; var numbernext = new Button { Width = Application.GetRealWidth (87), Height = Application.GetRealHeight (100), UnSelectedImagePath = "MusicIcon/Next.png", X = Application.GetRealWidth (550), Tag = musicModel, }; rowLa.AddChidren (numbernext); //歌曲列表 numbernext.MouseDownEventHandler += (sender1, e1) => { Button button = (Button)sender1; Songlist songlist = new Songlist { Width = LayoutParams.MatchParent, Height = LayoutParams.MatchParent, }; MainPage.MainFrameLayout.AddChidren (songlist); songlist.Show (musicModel.NasSongList.FindAll ((song) => { return song.number.StartsWith (typeAndListNumber); }), musicModel, 2, SettingView); }; } sdContentNAS.Height = Application.GetRealHeight (musicModel.NASListList.Count * 100); } else { readListNAS.UnSelectedImagePath = "MusicIcon/Listreading.png"; sdContentNAS.Height = 0; } }; middle.AddChidren (sdContentNAS); var refurbishNAS = new Button { Width = Application.GetRealWidth (80), Height = Application.GetRealHeight (76), UnSelectedImagePath = "MusicIcon/refurbish.png", SelectedImagePath = "MusicIcon/refurbishSelected.png", X = Application.GetRealWidth (460), Gravity = Gravity.CenterVertical, }; nasrowlayout.AddChidren (refurbishNAS); refurbishNAS.MouseUpEventHandler += (sender, e) => { refurbishNAS.IsSelected = true; MainPage.Loading.Start (); System.Threading.Tasks.Task.Run (() => { Control.ControlBytesSend (Command.ControlMusicModel, musicModel.SubnetID, musicModel.DeviceID, MusicModel.MusiceBytes ("*S2UPDATELIST")); System.Threading.Thread.Sleep (4000); Application.RunOnMainThread (() => { MainPage.Loading.Hide (); refurbishNAS.IsSelected = false; }); }); }; //蓝牙 var bluetoothrowlayout = new RowLayout { LineColor = 0x62818181, Width = LayoutParams.MatchParent, Height = Application.GetRealHeight (100), }; middle.AddChidren (bluetoothrowlayout); var bluetoothhoto = new Button { Width = Application.GetRealWidth (80), Height = Application.GetRealHeight (76), UnSelectedImagePath = "MusicIcon/bluetooth.png", SelectedImagePath = "MusicIcon/bluetoothselected.png", TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (30), Gravity = Gravity.CenterVertical, }; bluetoothrowlayout.AddChidren (bluetoothhoto); var bluetooth = new Button { Width = LayoutParams.MatchParent, Height = Application.GetRealHeight (100), TextID = MyInternationalizationString.Musicbluetooth, TextSize = 15, TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (130), }; bluetoothrowlayout.AddChidren (bluetooth); var nextbluetooth = new Button { Width = Application.GetRealWidth (87), Height = Application.GetRealHeight (100), UnSelectedImagePath = "MusicIcon/Next.png", TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (550), Gravity = Gravity.CenterVertical, }; bluetoothrowlayout.AddChidren (nextbluetooth); bluetooth.MouseUpEventHandler += (sender, e) => { //先移除当前控件的前面那个控件 this.Parent.RemoveAt (this.Parent.ChildrenCount - 2); //当前控件界面 this.RemoveFromParent (); PlayPage playPage = new PlayPage { }; MainPage.MainFrameLayout.AddChidren (playPage); playPage.Show (musicModel, new List (), SettingView); playPage.SourceId = 8; }; nextbluetooth.MouseUpEventHandler += (sender, e) => { //先移除当前控件的前面那个控件 this.Parent.RemoveAt (this.Parent.ChildrenCount - 2); //当前控件界面 this.RemoveFromParent (); PlayPage playPage = new PlayPage { }; MainPage.MainFrameLayout.AddChidren (playPage); playPage.Show (musicModel, new List (), SettingView); playPage.SourceId = 8; }; //FM收音机 var FMowlayout = new RowLayout { LineColor = 0x62818181, Width = LayoutParams.MatchParent, Height = Application.GetRealHeight (100), }; middle.AddChidren (FMowlayout); var FM = new Button { Width = Application.GetRealWidth (80), Height = Application.GetRealHeight (76), UnSelectedImagePath = "MusicIcon/FM.png", SelectedImagePath = "MusicIcon/FMselected.png", TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (30), Gravity = Gravity.CenterVertical, }; FMowlayout.AddChidren (FM); var FMtooth = new Button { Width = LayoutParams.MatchParent, Height = Application.GetRealHeight (100), //Text="收音机", TextID = MyInternationalizationString.MusicFM, TextSize = 15, TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (130), }; FMowlayout.AddChidren (FMtooth); FMtooth.MouseUpEventHandler += (sender, e) => { //先移除当前控件的前面那个控件 this.Parent.RemoveAt (this.Parent.ChildrenCount - 2); //当前控件界面 this.RemoveFromParent (); Control.ControlBytesSend (Command.ControlMusicModel, musicModel.SubnetID, musicModel.DeviceID, MusicModel.MusiceBytes ("*Z1SRC5")); RadioPage playMusicRadio = new RadioPage { Width = LayoutParams.MatchParent, Height = LayoutParams.MatchParent, }; MainPage.MainFrameLayout.AddChidren (playMusicRadio); playMusicRadio.Show (musicModel, SettingView); }; var nextFM = new Button { Width = Application.GetRealWidth (87), Height = Application.GetRealHeight (100), UnSelectedImagePath = "MusicIcon/Next.png", TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (550), Gravity = Gravity.CenterVertical, }; FMowlayout.AddChidren (nextFM); nextFM.MouseUpEventHandler += (sender, e) => { //先移除当前控件的前面那个控件 this.Parent.RemoveAt (this.Parent.ChildrenCount - 2); //当前控件界面 this.RemoveFromParent (); Control.ControlBytesSend (Command.ControlMusicModel, musicModel.SubnetID, musicModel.DeviceID, MusicModel.MusiceBytes ("*Z1SRC5")); RadioPage playMusicRadio = new RadioPage { Width = LayoutParams.MatchParent, Height = LayoutParams.MatchParent, }; MainPage.MainFrameLayout.AddChidren (playMusicRadio); playMusicRadio.Show (musicModel, SettingView); }; var CDrowlayout = new RowLayout { LineColor = 0x62818181, Width = LayoutParams.MatchParent, Height = Application.GetRealHeight (100), }; middle.AddChidren (CDrowlayout); var CDhoto = new Button { Width = Application.GetRealWidth (80), Height = Application.GetRealHeight (76), UnSelectedImagePath = "MusicIcon/CD.png", SelectedImagePath = "MusicIcon/CDSelected.png", TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (30), Gravity = Gravity.CenterVertical, }; CDrowlayout.AddChidren (CDhoto); var CD = new Button { Width = LayoutParams.MatchParent, Height = Application.GetRealHeight (100), //Text = "CD", TextID = MyInternationalizationString.MusicCD, TextSize = 15, TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (130), }; CDrowlayout.AddChidren (CD); var nextCD = new Button { Width = Application.GetRealWidth (87), Height = Application.GetRealHeight (100), UnSelectedImagePath = "MusicIcon/Next.png", TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (550), Gravity = Gravity.CenterVertical, }; CDrowlayout.AddChidren (nextCD); nextCD.MouseUpEventHandler += (sedner, e) => { //先移除当前控件的前面那个控件 this.Parent.RemoveAt (this.Parent.ChildrenCount - 2); //当前控件界面 this.RemoveFromParent (); PlayPage playMusicCD = new PlayPage { }; MainPage.MainFrameLayout.AddChidren (playMusicCD); playMusicCD.Show (musicModel, new List (), SettingView); playMusicCD.SourceId = 6; }; CD.MouseUpEventHandler += (semder, e) => { //先移除当前控件的前面那个控件 this.Parent.RemoveAt (this.Parent.ChildrenCount - 2); //当前控件界面 this.RemoveFromParent (); PlayPage playPage = new PlayPage { }; MainPage.MainFrameLayout.AddChidren (playPage); playPage.Show (musicModel, new List (), SettingView); playPage.SourceId = 6; }; //FD光纤 var FDrowlayout = new RowLayout { LineColor = 0x62818181, Width = LayoutParams.MatchParent, Height = Application.GetRealHeight (100), }; middle.AddChidren (FDrowlayout); var FDhoto = new Button { Width = Application.GetRealWidth (80), Height = Application.GetRealHeight (76), UnSelectedImagePath = "MusicIcon/FD.png", SelectedImagePath = "MusicIcon/FDSelected.png", TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (30), Gravity = Gravity.CenterVertical, }; FDrowlayout.AddChidren (FDhoto); var FD = new Button { Width = LayoutParams.MatchParent, Height = Application.GetRealHeight (100), //Text = "FD", TextID = MyInternationalizationString.MusicFD, TextSize = 15, TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (130), }; FDrowlayout.AddChidren (FD); FD.MouseUpEventHandler += (sender, e) => { //先移除当前控件的前面那个控件 this.Parent.RemoveAt (this.Parent.ChildrenCount - 2); //当前控件界面 this.RemoveFromParent (); PlayPage playPage = new PlayPage { }; MainPage.MainFrameLayout.AddChidren (playPage); playPage.Show (musicModel, new List (), SettingView); playPage.SourceId = 9; }; var nextFD = new Button { Width = Application.GetRealWidth (87), Height = Application.GetRealHeight (100), UnSelectedImagePath = "MusicIcon/Next.png", TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (550), Gravity = Gravity.CenterVertical, }; FDrowlayout.AddChidren (nextFD); nextFD.MouseUpEventHandler += (sender, e) => { //先移除当前控件的前面那个控件 this.Parent.RemoveAt (this.Parent.ChildrenCount - 2); //当前控件界面 this.RemoveFromParent (); PlayPage playPage = new PlayPage { }; MainPage.MainFrameLayout.AddChidren (playPage); playPage.Show (musicModel, new List (), SettingView); playPage.SourceId = 9; }; //我的最爱 var rowList = new RowLayout { Width = LayoutParams.MatchParent, Height = Application.GetRealHeight (100), }; //middle.AddChidren(rowList); var likehoto = new Button { Width = Application.GetRealWidth (105), Height = Application.GetRealHeight (113), UnSelectedImagePath = "MusicIcon/like.png", SelectedImagePath = "MusicIcon/likeSelected.png", TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (20), Gravity = Gravity.CenterVertical, }; rowList.AddChidren (likehoto); var likedList = new Button { Width = LayoutParams.MatchParent, Height = Application.GetRealHeight (100), TextID = MyInternationalizationString.Musiclike, TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (130), }; rowList.AddChidren (likedList); likedList.MouseDownEventHandler += (sender, e) => { LikeList likeList = new LikeList { }; MainPage.MainFrameLayout.AddChidren (likeList); likeList.Show (musicModel, SettingView); }; var nextlike = new Button { Width = Application.GetRealWidth (87), Height = Application.GetRealHeight (100), UnSelectedImagePath = "MusicIcon/Next.png", X = Application.GetRealWidth (550), }; rowList.AddChidren (nextlike); nextlike.MouseDownEventHandler += (sender, e) => { LikeList likeList = new LikeList { }; MainPage.MainFrameLayout.AddChidren (likeList); likeList.Show (musicModel, SettingView); }; } /// /// 读取列表 /// /// 音乐对象 /// 源号 void readPlayList (MusicModel musicModel, int sourceID) { List listMusicTypeName = new List (); List listMusicListName = new List (); List listMusicSongName = new List (); #region 读取类型 //int typeNum = 0; ////读取类型 //while (true) //{ // typeNum++; // string typeNumStr = ""; // if (typeNum < 10) // { // typeNumStr = "00" + typeNum.ToString(); // } // else if (typeNum < 100) // { // typeNumStr = "0" + typeNum.ToString(); // } // else // { // typeNumStr = typeNumStr.ToString(); // } // byte[] bytes = Control.ControlBytesSendHasReturn(Command.ControlMusicModel2, musicModel.SubnetID, musicModel.DeviceID, MusicModel.MusiceBytes("*Z011TYPE" + typeNumStr + "1")); // if (bytes == null) // { // return; // } // int count = 0; // for (int i = 15; i < bytes.Length - 1;) // { // if (bytes[i] == 0x00 && bytes[i + 1] == 0x03) // { // //如果读取到结束符的时候,就退出 // break; // } // count += 2; // //unicode码顺序要对换,要不有乱码 // byte b = bytes[i]; // bytes[i] = bytes[i + 1]; // bytes[i + 1] = b; // //每个字符有两个byte // i += 2; // } // //反馈回来的类型名 // string content = System.Text.Encoding.Unicode.GetString(bytes, 15, count); // if (null == listMusicTypeName.Find((kv) => { return kv.number == typeNumStr; })) // { // listMusicTypeName.Add(new KeyAndValue { number = typeNumStr, name = content }); // } // if (bytes[12] == (byte)'1') // { // //已经读取完成,退出读取音乐类型 // break; // } //} #endregion listMusicTypeName.Add (new KeyAndValue { number = "001", name = "Default" }); #region 读取列表 //读取列表 for (int i = 0; i < listMusicTypeName.Count; i++) { string typeNumberString = listMusicTypeName [i].number; int listCount = 0; while (true) { listCount++; string listNumberStr = ""; if (listCount < 10) { listNumberStr = "00" + listCount; } else if (listCount < 100) { listNumberStr = "0" + listCount; } else { listNumberStr = listCount.ToString (); } byte [] bytes = Control.ControlBytesSendHasReturn (Command.ControlMusicModel2, musicModel.SubnetID, musicModel.DeviceID, MusicModel.MusiceBytes ("*Z01" + sourceID + "LIST" + typeNumberString + listNumberStr + "1")); if (bytes == null) { //当前可能是丢包,读取下一条 break; } int count = 0; for (int j = 15 + 3; j < bytes.Length - 1;) { if (bytes [j] == 0x00 && bytes [j + 1] == 0x03) { //如果读取到结束符的时候,就退出 break; } count += 2; //unicode码顺序要对换,要不有乱码 byte b = bytes [j]; bytes [j] = bytes [j + 1]; bytes [j + 1] = b; //每个字符有两个byte j += 2; } //反馈回来的类型名 string content = System.Text.Encoding.Unicode.GetString (bytes, 15 + 3, count); if (null == listMusicListName.Find ((kv) => { return kv.number == typeNumberString + listNumberStr; })) { listMusicListName.Add (new KeyAndValue { number = typeNumberString + listNumberStr, name = content }); } if (bytes [12 + 3] == (byte)'1') { //已经读取完成,退出读取音乐类型 break; } } } #endregion #region 读取音乐 //读取音乐 for (int i = 0; i < listMusicListName.Count; i++) { string listNumberString = listMusicListName [i].number; int songCount = 0; while (true) { songCount++; string songNumberStr = ""; if (songCount < 10) { songNumberStr = "00" + songCount; } else if (songCount < 100) { songNumberStr = "0" + songCount; } else { songNumberStr = songCount.ToString (); } byte [] bytes = Control.ControlBytesSendHasReturn (Command.ControlMusicModel2, musicModel.SubnetID, musicModel.DeviceID, MusicModel.MusiceBytes ("*Z01" + sourceID + "SONG" + listNumberString + songNumberStr + "1")); if (bytes == null) { //当前可能是丢包,读取下一条 break; } int count = 0; for (int j = 15 + 3 + 3; j < bytes.Length - 1;) { if (bytes [j] == 0x00 && bytes [j + 1] == 0x03) { break; } count += 2; byte b = bytes [j]; bytes [j] = bytes [j + 1]; bytes [j + 1] = b; j += 2; } //反馈回来的类型名 string content = System.Text.Encoding.Unicode.GetString (bytes, 15 + 3 + 3, count); if (null == listMusicSongName.Find ((kv) => { return kv.number == listNumberString + songNumberStr; })) { listMusicSongName.Add (new KeyAndValue { number = listNumberString + songNumberStr, name = content }); if (bytes [12 + 3 + 3] == (byte)'1') { //已经读取完成,退出读取音乐类型 break; } } } } #endregion if (sourceID == 1) { //SD卡播放列表 musicModel.SDCardTypeList = listMusicTypeName; musicModel.SDCardListList = listMusicListName; musicModel.SDCardSongList = listMusicSongName; } else { //Nas播放列表 musicModel.NASTypeList = listMusicTypeName; musicModel.NASListList = listMusicListName; musicModel.NasSongList = listMusicSongName; } //读取列表完成,重新保存起来 string saveRoomUIName = "Room_" + Room.CurrentRoom.Name; Shared.IO.FileUtils.WriteFileByBytes (saveRoomUIName, Shared.SimpleControl.CommonPage.MyEncodingUTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (Room.CurrentRoom))); } } }