using 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 musicList,string listName) { this.BackgroundColor = MusicColor.ViewColor; var topView = new TopView(); this.AddChidren(topView.TopFLayoutView()); topView.topNameBtn.TextID = StringId.localMusic; 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); vv.BeginHeaderRefreshingAction += () => { vv.EndHeaderRefreshing(); }; ///加载音乐列表 SongListView(vv, musicList, listName); } /// /// 加载音乐列表 /// /// 父控件 /// 音乐列表 /// 列表名 public static void SongListView(VerticalRefreshLayout vv,List musicList,string listName, FrameLayout frame = null) { 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.songBtn.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); //移除界面 if (frame != null) { frame.RemoveFromParent(); } MainPage.BasePageView.RemoveViewByTag("Music"); Dictionary dic = new Dictionary(); dic.Add("song_name", songView.songBtn.Text); dic.Add("playlist_name", listName); SendMethod.Current.SendControlCommand(A31MusicModel.Current.functionMusic, dic); }); }); }; } } } public class UpdateThread { public UpdateThread() { } /// /// 定时更新当前播放音乐 /// /// 当前界面 /// 每一条音乐的主控件 /// 点前播放器 public static void updateCurrMusicThread(FrameLayout frame, VerticalRefreshLayout middViewLayout, A31MusicModel a31MusicModel) { System.Threading.Thread updateSelectedMusicThread = new System.Threading.Thread(() => { while (frame.Parent != null) { //A31MusicModel.LogMusic("已启动更新音乐列表某一条音乐状态的线程"); System.Threading.Thread.Sleep(1000); Application.RunOnMainThread(() => { try { for (int i = 0; i < middViewLayout.ChildrenCount; i++) { RowLayout view = (RowLayout)middViewLayout.GetChildren(i); var volIconBtn = (Button)view.GetChildren(0);//直接FrameLayout父控件找到该控件Button var songNameBtn = (Button)view.GetChildren(1);//直接FrameLayout父控件找到该控件Button var artistNameBtn = (Button)view.GetChildren(2);//直接FrameLayout父控件找到该控件Button //if (a31MusicModel.A31PlayStatus.TrackURL == songNameBtn.Tag.ToString()) //{ // volIconBtn.Visible = true; // songNameBtn.TextColor = UI.Music.MusicColor.SelectedColor; // songNameBtn.X = Application.GetRealWidth(48); // artistNameBtn.X = songNameBtn.Right; // artistNameBtn.TextColor = UI.Music.MusicColor.SelectedColor; //} //else //{ // volIconBtn.Visible = false; // songNameBtn.TextColor = UI.Music.MusicColor.MusicTxet14Color; // songNameBtn.X = Application.GetRealWidth(16); // artistNameBtn.X = songNameBtn.Right; // artistNameBtn.TextColor = UI.Music.MusicColor.MusicNoTxetColor; //} } } catch { } }); } }); updateSelectedMusicThread.Start(); } } }