| | |
| | | using Shared; |
| | | using HDL_ON.UI.Music; |
| | | using System.Collections.Generic; |
| | | using HDL_ON.UI.UI2.FuntionControlView.Music; |
| | | |
| | | namespace HDL_ON.UI.Music |
| | | { |
| | |
| | | Tag = "Music"; |
| | | } |
| | | |
| | | public void Show(List<Songs> musicList,string listName) |
| | | |
| | | public void Show(SongList songLists) |
| | | { |
| | | |
| | | this.BackgroundColor = MusicColor.ViewColor; |
| | | var topView = new TopView(); |
| | | this.AddChidren(topView.TopFLayoutView()); |
| | | topView.topNameBtn.TextID = StringId.usb; |
| | | topView.topNameBtn.Text=songLists.group; |
| | | topView.clickBackBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | this.RemoveFromParent(); |
| | |
| | | Height = Application.GetRealHeight(H_W.H - H_W.T_Height), |
| | | }; |
| | | this.AddChidren(vv); |
| | | vv.BeginHeaderRefreshingAction += () => |
| | | { |
| | | System.Threading.Tasks.Task.Run(() => |
| | | { |
| | | try |
| | | { |
| | | //获取歌曲列表 |
| | | var songList = SendMethod.Current.GetSingleSongList(A31MusicModel.Current.functionMusic, songLists.group, songLists.source); |
| | | CommonMethod.Current.AddSongListMemory(songList, songLists.source);//保存缓存 |
| | | } |
| | | catch |
| | | { |
| | | } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | vv.EndHeaderRefreshing(); |
| | | //从缓存拿列表 |
| | | var songListMemory = CommonMethod.Current.GetSongListMemory(songLists.group, songLists.source); |
| | | ///加载音乐列表 |
| | | SongListView(vv, songListMemory.songs, songListMemory.group, songLists.source); |
| | | |
| | | }); |
| | | } |
| | | }); |
| | | }; |
| | | ///加载音乐列表 |
| | | SongListView(vv, musicList, listName); |
| | | SongListView(vv, songLists.songs, songLists.group,songLists.source); |
| | | |
| | | |
| | | } |
| | |
| | | /// <param name="vv">父控件</param> |
| | | /// <param name="musicList">音乐列表</param> |
| | | /// <param name="listName">列表名</param> |
| | | public void SongListView(VerticalRefreshLayout vv,List<Songs> musicList,string listName) { |
| | | |
| | | /// <param name="source">音乐源</param> |
| | | public static void SongListView(VerticalRefreshLayout vv, List<SongInfo> musicList, string listName,string source, FrameLayout frame = null) |
| | | { |
| | | if (vv!=null) { |
| | | vv.RemoveAll(); |
| | | } |
| | | for (int i = 0; i < musicList.Count; i++) |
| | | { |
| | | var songs = musicList[i]; |
| | |
| | | } |
| | | UI.Music.View.SongView songView = new UI.Music.View.SongView(); |
| | | songView.SongFrameLayout(vv, songs); |
| | | songView.singerBtn.Text = songs.name; |
| | | songView.songBtn.Text = songs.name; |
| | | ///点击播放事件 |
| | | songView.clickBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | |
| | | 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<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); |
| | | if (!string.IsNullOrEmpty(songs.url)) |
| | | { |
| | | dic.Add("url", songs.url); |
| | | } |
| | | if (!string.IsNullOrEmpty(source)) |
| | | { |
| | | dic.Add("source", source); |
| | | } |
| | | SendMethod.Current.SendControlCommand(A31MusicModel.Current.functionMusic, dic); |
| | | }); |
| | | }); |
| | | }; |
| | |
| | | |
| | | } |
| | | } |
| | | |
| | | public class UpdateThread |
| | | { |
| | | public UpdateThread() |
| | | { |
| | | } |
| | | /// <summary> |
| | | /// 定时更新当前播放音乐 |
| | | /// </summary> |
| | | /// <param name="frame">当前界面</param> |
| | | /// <param name="middViewLayout">每一条音乐的主控件</param> |
| | | /// <param name="a31MusicModel">点前播放器</param> |
| | | 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(); |
| | | } |
| | | |
| | | } |
| | | } |