using System; using Shared; using com.hdl.on; using System.Collections.Generic; using System.Security; namespace HDL_ON.UI.Music { public class A31PlayMusicPage : FrameLayout { public A31PlayMusicPage() { } public override void RemoveFromParent() { base.RemoveFromParent(); Volume.VolumeChange = null; if (timerThread != null) { try { if (timerThread.IsAlive) { timerThread.Abort(); } } catch { } } } View.PlayView playView = new View.PlayView(); public void Show() { ///1秒定时更新状态 timerUpdateStatus(); #region ---界面布局--- this.BackgroundColor = Color.ViewColor; var topView = new TopView(); topView.setBtn.Visible = true; this.AddChidren(topView.TopFLayoutView()); topView.topNameBtn.Text = A31MusicModel.Current.Name; topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { RemoveFromParent(); }; topView.setBtn.MouseUpEventHandler += (sender, e) => { A31MusicSourcePage a31MusicSourcePage = new A31MusicSourcePage(); MainPage.BasePageView.AddChidren(a31MusicSourcePage); a31MusicSourcePage.Show(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; var middLayout = new FrameLayout { Y = topView.fLayout.Bottom, Height = Application.GetRealHeight(H_W.H - H_W.T_Height), }; this.AddChidren(middLayout); ///加载播放音乐界面的控件方法 playView.viewFrameLayout(middLayout); #endregion ///切换播放模式点击事件; playView.playOrderBtn.MouseUpEventHandler += (sender, e) => { string msg = Language.StringByID(StringId.switchTo); switch (A31MusicModel.Current.A31PlayStatus.loop) { //0列表循环,1单曲循环,2随机播放; case "0": A31MusicModel.Current.A31PlayStatus.loop = "1"; playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/single.png"; msg += Language.StringByID(StringId.singleMode); break; case "1": A31MusicModel.Current.A31PlayStatus.loop = "2"; playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/random.png"; msg += Language.StringByID(StringId.randomMode); break; case "2": A31MusicModel.Current.A31PlayStatus.loop = "0"; playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/list.png"; msg += Language.StringByID(StringId.listMode); break; } new PublicAssmebly().TipMsgAutoClose(msg, false,1000); string url = "http://" + A31MusicModel.Current.IPAddress + "/httpapi.asp?command=setPlayerCmd:" + "loopmode:" + A31MusicModel.Current.A31PlayStatus.loop; SendMethod.SendCommand(url); }; ///添加喜爱点击事件; 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; if (A31MusicModel.Current.A31PlayStatus.Source == "RADIO-NETWORK") { playView.loveBtn.IsSelected = !playView.loveBtn.IsSelected; if (playView.loveBtn.IsSelected) { if (null == A31MusicModel.Current.LoveRadioInfoList.Find((musicInfo) => { return url == musicInfo.URL; })) { A31MusicModel.Current.LoveRadioInfoList.Add(new MusicInfo { Title = song, URL = url, }); } } else { A31MusicModel.Current.LoveRadioInfoList.RemoveAll((musicInfo) => { return url == musicInfo.URL; }); } } else { playView.loveBtn.IsSelected = !playView.loveBtn.IsSelected; if (playView.loveBtn.IsSelected) { if (null == A31MusicModel.Current.LoveMusicInfoList.Find((musicInfo) => { return url == musicInfo.URL; })) { A31MusicModel.Current.LoveMusicInfoList.Add(new MusicInfo { Title = song, URL = url, Artist = artist, Album = album }); } } else { A31MusicModel.Current.LoveMusicInfoList.RemoveAll((musicInfo) => { //也要加歌手名判断 return musicInfo.URL == url; }); } } A31MusicModel.Save(); }; ///我的列表点击事件 playView.playlistBtn.MouseUpEventHandler += (sender, e) => { #region 布局界面--- Loading loading = new Loading(); FrameLayout popFra = new FrameLayout() { BackgroundColor = Color.PopupBackgroundColor, }; this.AddChidren(popFra); FrameLayout dialogFra = new FrameLayout() { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(187), Width = Application.GetRealWidth(344), Height = Application.GetRealHeight(460), BackgroundColor = Color.WhiteColor, Radius = (uint)Application.GetRealHeight(12), }; popFra.AddChidren(dialogFra); dialogFra.AddChidren(loading);//dialogFra刷新图标父控件 FrameLayout topFra = new FrameLayout() { Width = Application.GetRealWidth(344), Height = Application.GetRealHeight(50), }; dialogFra.AddChidren(topFra); Button orderIconBtn = new Button { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(11), Width = Application.GetMinRealAverage(28), Height = Application.GetMinRealAverage(28), }; topFra.AddChidren(orderIconBtn); Button orderTxetBtn = new Button { X = Application.GetRealWidth(60), Y = Application.GetRealHeight(14), Width = Application.GetRealWidth(120), Height = Application.GetRealHeight(22), TextColor = Color.TextColor, TextSize = TextSize.Text16, TextAlignment = TextAlignment.CenterLeft, }; topFra.AddChidren(orderTxetBtn); switch (A31MusicModel.Current.A31PlayStatus.loop) { //0列表循环,1单曲循环,2随机播放; case "0": orderIconBtn.UnSelectedImagePath = "MusicIcon/list.png"; orderTxetBtn.Text = Language.StringByID(StringId.listMode); break; case "1": orderIconBtn.UnSelectedImagePath = "MusicIcon/single.png"; orderTxetBtn.Text = Language.StringByID(StringId.singleMode); break; case "2": orderIconBtn.UnSelectedImagePath = "MusicIcon/random.png"; orderTxetBtn.Text = Language.StringByID(StringId.randomMode); break; } Button backIextBtn = new Button { X = Application.GetRealWidth(288),//300 Y = Application.GetRealHeight(15), Width = Application.GetRealWidth(28 + 12),//28 Height = Application.GetRealHeight(20), TextID = StringId.cancelMusic, TextColor = Color.MusicNoTxetColor, TextSize = TextSize.Text14, TextAlignment = TextAlignment.CenterLeft, }; topFra.AddChidren(backIextBtn); Button lineBtn = new Button { Y = topFra.Height - 1, Width = Application.GetRealWidth(344), Height = H_W.Line, BackgroundColor = Color.LineColor, }; topFra.AddChidren(lineBtn); VerticalScrolViewLayout verticalScrolViewLayout = new VerticalScrolViewLayout { Y = Application.GetRealHeight(50), Height = Application.GetRealHeight(410), Width = Application.GetRealWidth(344), }; dialogFra.AddChidren(verticalScrolViewLayout); ///移除界面 EventHandler removeFromParentView = (sen, e1) => { if (updateSelectedMusicThread != null) { try { if (updateSelectedMusicThread.IsAlive) { updateSelectedMusicThread.Abort(); ///关闭线程 } } catch { } } popFra.RemoveFromParent(); }; backIextBtn.MouseUpEventHandler += removeFromParentView; popFra.MouseUpEventHandler += removeFromParentView; #endregion loading.Start(); System.Threading.Tasks.Task.Run(() => { string playListName = "List"; string sourceName = "SourceName"; try { if (A31MusicModel.Current.A31PlayStatus.Source == "STATION-NETWORK") { A31MusicModel.Current.CurrentPlayMusicInfoList = new List(); return; } if (A31MusicModel.Current.A31PlayStatus.Source == "AIRPLAY") { A31MusicModel.Current.CurrentPlayMusicInfoList = new List(); return; } var playString = SendMethod.GetCurrentPlayList(A31MusicModel.Current); A31MusicModel.Current.CurrentPlayMusicInfoList = new List(); 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(metadata); musicInfo.Album = qqSong.album; musicInfo.Title = qqSong.title; musicInfo.Artist = qqSong.creator; } else { metadata = metadata.Replace("", "").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(() => { loading.Hide(); PlayListView(popFra, verticalScrolViewLayout, playListName); UpdateSelectedMusic(verticalScrolViewLayout); }); } }); }; ///音量图标点击事件 playView.volIconBtn.MouseUpEventHandler += (sender, e) => { if (A31MusicModel.Current.ServerClientType == 1 && A31MusicModel.Current.Slave.slave_list.Count != 0) { ///主播放器 //new View.DialogView { }.PlayerVolumeView(A31MusicModel.Current); var volumeView = new View.DialogView { }; volumeView.PlayerVolumeView(A31MusicModel.Current); volumeView.UpdateVolume(); } }; ///音量进度条点击事件 int startVolume =0;//之前的音量 //int endVolume = 0;//现在的音量 EventHandler progressClick = (sender, e) => { playView.volValueBtn.Text = playView.volSeekBar.Progress + "%"; if (startVolume != e) { startVolume = e; SendMethod.ControlVolume(e, A31MusicModel.Current); A31MusicModel.Current.A31PlayStatus.vol = e.ToString(); } }; playView.volSeekBar.OnProgressChangedEvent += progressClick; playView.volSeekBar.OnStopTrackingTouchEvent += progressClick; ///上一曲点击事件 playView.prevBtn.MouseDownEventHandler += (sender, e) => { playView.prevBtn.IsSelected = true; SendMethod.Previous(A31MusicModel.Current); }; playView.prevBtn.MouseUpEventHandler += (sender, e) => { playView.prevBtn.IsSelected = false; }; ///暂停/播放点击事件 playView.playBtn.MouseDownEventHandler += (sender, e) => { if (playView.playBtn.IsSelected) { playView.playBtn.IsSelected = false; SendMethod.Pause(A31MusicModel.Current); A31MusicModel.Current.A31PlayStatus.status = "pause"; } else { playView.playBtn.IsSelected = true; SendMethod.Play(A31MusicModel.Current); A31MusicModel.Current.A31PlayStatus.status = "play"; } }; ///下一曲点击事件 playView.nextBtn.MouseDownEventHandler += (sender, e) => { playView.nextBtn.IsSelected = true; SendMethod.Next(A31MusicModel.Current); }; playView.nextBtn.MouseUpEventHandler += (sender, e) => { playView.nextBtn.IsSelected = false; }; ///物理按键的点击事件 Volume.VolumeChange = (volume) => { if (Application.DeviceType == Device.Ios && A31MusicModel.Current.A31PlayStatus.Source == "BLUETOOTH") { return; } playView.volSeekBar.Progress = volume; if (startVolume != volume) { startVolume = volume; SendMethod.ControlVolume(volume, A31MusicModel.Current); A31MusicModel.Current.A31PlayStatus.vol = volume.ToString(); } }; } System.Threading.Thread timerThread; /// /// 定时更新状态 /// void timerUpdateStatus() { timerThread = new System.Threading.Thread((obj) => { while (true) { Application.RunOnMainThread(() => { try { //更新总时间 //总共有多少秒 int totalSecond = int.Parse(A31MusicModel.Current.A31PlayStatus.totlen) / 1000; //分钟 int totalMusicMinute = totalSecond / 60; //秒钟 int totalMusicSecond = totalSecond % 60; string totalTime = (totalMusicMinute.ToString().Length < 2 ? "0" + totalMusicMinute.ToString() : totalMusicMinute.ToString()) + ":" + (totalMusicSecond.ToString().Length < 2 ? "0" + totalMusicSecond.ToString() : totalMusicSecond.ToString()); playView.endTimeBtn.Text = totalTime; //topView.topNameBtn.Text = A31MusicModel.Current.Name; switch (A31MusicModel.Current.A31PlayStatus.loop) { case "0"://列表循环 playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/list.png"; break; case "1"://单曲顺环 playView.playOrderBtn.UnSelectedImagePath = "MusicIcon/single.png"; break; case "2"://随机播放 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; } } //if (A31MusicModel.Current.A31PlayStatus.IsMute) //{ // btnMute.IsSelected = true;//静音图标 // playView.volSeekBar.Progress = 0; //} //else //{ // btnMute.IsSelected = false;//静音图标 // if (1000 < (DateTime.Now - A31MusicModel.ProgressDateTime).TotalMilliseconds) // { // //声音进度条; // playView.volSeekBar.Progress = int.Parse(A31MusicModel.Current.A31PlayStatus.vol); // //显示当前音量值; // playView.volValueBtn.Text = A31MusicModel.Current.A31PlayStatus.vol + "%"; // } //} if (1000 < (DateTime.Now - A31MusicModel.ProgressDateTime).TotalMilliseconds) { //音量进度条; playView.volSeekBar.Progress = int.Parse(A31MusicModel.Current.A31PlayStatus.vol); //显示当前音量值; playView.volValueBtn.Text = A31MusicModel.Current.A31PlayStatus.vol + "%"; } //更新播放器音量给系统音量 Volume.MusicVolume = playView.volSeekBar.Progress; //当前播放音乐时间 int playSecond = int.Parse(A31MusicModel.Current.A31PlayStatus.curpos) / 1000 + (int)(DateTime.Now - A31MusicModel.Current.LastDateTime).TotalSeconds; int playMusicMinute = playSecond / 60; //秒钟 int playMusicSecond = playSecond % 60; 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") { playView.playBtn.IsSelected = true; //如果在播放,时间就不断变化 playView.startTimeBtn.Text = playTime; if (totalSecond == 0) { //歌曲进度条 //playView.volSeekBar.Progress = 0; } else { //歌曲进度条 //playView.volSeekBar.Progress = (int)(playSecond * 100.0 / totalSecond);//+1 } } else { playView.playBtn.IsSelected = false; //停止播放 playView.startTimeBtn.Text = "00:00"; } 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()); //更新源的界面 showSourcePage(); } catch (Exception e) { var ee = e.Message; } }); System.Threading.Thread.Sleep(1000 * 1); } }) { IsBackground = true }; timerThread.Start(); } /// /// 更新不同音乐源界面图标状态 /// void showSourcePage() { playView.loveBtn.Alpha = 1; playView.loveBtn.Enable = true; playView.playlistBtn.Alpha = 1; playView.playlistBtn.Enable = true; playView.prevBtn.Alpha = 1; playView.prevBtn.Enable = true; playView.nextBtn.Alpha = 1; playView.nextBtn.Enable = true; playView.playOrderBtn.Alpha = 1; playView.playOrderBtn.Enable = true; //btnPlay.Alpha = 1; //btnPlay.Enable = true; playView.volSeekBar.IsClickable = true; switch (A31MusicModel.Current.A31PlayStatus.Source) { case "QPLAY"://QQ音乐 //currentsource.UnSelectedImagePath = "MusicIcon/qqmusic1.png"; playView.loveBtn.Alpha = 0.5f; playView.loveBtn.Enable = false; break; case "AIRPLAY"://酷狗音乐 //currentsource.UnSelectedImagePath = "MusicIcon/kumusic.png"; playView.loveBtn.Alpha = 0.5f; playView.loveBtn.Enable = false; playView.volSeekBar.IsClickable = false; break; case "SONGLIST-NETWORK"://本地音乐 //currentsource.UnSelectedImagePath = "MusicIcon/musicMusic1.png"; break; case "SONGLIST-LOCAL"://USB //currentsource.UnSelectedImagePath = "MusicIcon/USB1.png"; break; case "RADIO-NETWORK"://在线电台 //currentsource.UnSelectedImagePath = "MusicIcon/local1.png"; playView.playlistBtn.Alpha = 1; playView.playlistBtn.Enable = true; playView.prevBtn.Alpha = 0.5f; playView.prevBtn.Enable = false; playView.nextBtn.Alpha = 0.5f; playView.nextBtn.Enable = false; playView.playOrderBtn.Alpha = 0.5f; playView.playOrderBtn.Enable = false; break; case "STATION-NETWORK"://Pandora电台 playView.volSeekBar.IsClickable = false; //currentsource.UnSelectedImagePath = "MusicIcon/pandora1.png"; playView.loveBtn.Alpha = 0.5f; playView.loveBtn.Enable = false; playView.prevBtn.Alpha = 0.5f; playView.prevBtn.Enable = false; playView.playOrderBtn.Alpha = 0.5f; playView.playOrderBtn.Enable = false; break; case "BLUETOOTH"://蓝牙 // currentsource.UnSelectedImagePath = "MusicIcon/bluetooth1.png"; playView.loveBtn.Alpha = 0.5f; playView.loveBtn.Enable = false; playView.playlistBtn.Alpha = 0.5f; playView.playlistBtn.Enable = false; playView.prevBtn.Alpha = 0.5f; playView.prevBtn.Enable = false; playView.nextBtn.Alpha = 0.5f; playView.nextBtn.Enable = false; playView.playOrderBtn.Alpha = 0.5f; playView.playOrderBtn.Enable = false; //btnPlay.Alpha = 0.5f; //btnPlay.Enable = false; break; case "LINE-IN"://线路输入 // currentsource.UnSelectedImagePath = "MusicIcon/muiscline1.png"; playView.loveBtn.Alpha = 0.5f; playView.loveBtn.Enable = false; playView.playlistBtn.Alpha = 0.5f; playView.playlistBtn.Enable = false; playView.prevBtn.Alpha = 0.5f; playView.prevBtn.Enable = false; playView.nextBtn.Alpha = 0.5f; playView.nextBtn.Enable = false; playView.playOrderBtn.Alpha = 0.5f; playView.playOrderBtn.Enable = false; //btnPlay.Alpha = 0.5f; //btnPlay.Enable = false; break; default: //currentsource.UnSelectedImagePath = "MusicIcon/dlna.png"; playView.volSeekBar.IsClickable = false; playView.loveBtn.Alpha = 0.5f; playView.loveBtn.Enable = false; playView.playlistBtn.Alpha = 0.5f; playView.playlistBtn.Enable = false; playView.prevBtn.Alpha = 0.5f; playView.prevBtn.Enable = false; playView.nextBtn.Alpha = 0.5f; playView.nextBtn.Enable = false; playView.playOrderBtn.Alpha = 0.5f; playView.playOrderBtn.Enable = false; break; } //if (A31MusicModel.Current.A31PlayStatus.playSource == "UPnPServer") //{ // currentsource.UnSelectedImagePath = "MusicIcon/dlna.png"; //} //else if (A31MusicModel.Current.A31PlayStatus.playSource == "Tidal") //{ // currentsource.UnSelectedImagePath = "MusicIcon/Tidal1.png"; //} } /// /// 显示当前播放音乐View /// /// void PlayListView(FrameLayout frameLayout, VerticalScrolViewLayout verticalScrolViewLayout, string playListName) { verticalScrolViewLayout.RemoveAll(); int number = 0; for (int i = 0; i < A31MusicModel.Current.CurrentPlayMusicInfoList.Count; i++) { number++; var songs = A31MusicModel.Current.CurrentPlayMusicInfoList[i]; if (string.IsNullOrEmpty(songs.Title)) { //防止歌曲名字为空抛异常 songs.Title = " "; } if (string.IsNullOrEmpty(songs.Artist)) { //防止歌手名字为空抛异常 songs.Artist = " "; } FrameLayout musicViewFl = new FrameLayout { Width = Application.GetRealWidth(375), Height = Application.GetRealHeight(44), }; verticalScrolViewLayout.AddChidren(musicViewFl); //列表当前播放音乐图标 Button playIconBtn = new Button { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(10), Width = Application.GetMinRealAverage(24), Height = Application.GetMinRealAverage(24), UnSelectedImagePath = "MusicIcon/playStatus.png", Visible = false, Name = "playStatus", Tag = songs.URL, }; musicViewFl.AddChidren(playIconBtn); //歌曲控件 Button songBtn = new Button { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(11), Width = Application.GetRealWidth(100), Height = Application.GetRealHeight(22), TextColor = Color.MusicTxet14Color, TextSize = TextSize.Text16, TextAlignment = TextAlignment.CenterLeft, Name = "song", Tag = songs.URL, Text = songs.Title.Trim() }; musicViewFl.AddChidren(songBtn); var wText = songBtn.GetTextWidth();//获取文本宽度 ///(歌曲+歌手)宽度最大值时280 if (wText > 280) { songBtn.Width = Application.GetRealWidth(280); } else { songBtn.Width = wText + 5; } //歌手控件 Button singerBtn = new Button { X = songBtn.Right, Y = Application.GetRealHeight(11), Width = Application.GetRealWidth(280 - songBtn.Width), Height = Application.GetRealHeight(22), TextColor = Color.MusicNoTxetColor, TextSize = TextSize.Text12, TextAlignment = TextAlignment.CenterLeft, //Text =("-" +songs.Artist).Trim(), Name = "singer", Tag = songs.URL, Text = "-" + songs.Artist.Trim() }; musicViewFl.AddChidren(singerBtn); if (wText > 280) { ///歌名长度小于250才可以显示歌手出来 singerBtn.Width = Application.GetRealWidth(0); } //点击控件 Button clickBtn = new Button { Width = Application.GetRealWidth(280), Height = Application.GetRealHeight(44), Tag = number,//标记播放哪一首歌曲 }; musicViewFl.AddChidren(clickBtn); ///点击播放事件 clickBtn.MouseUpEventHandler += (sender, e) => { if (updateSelectedMusicThread != null) { try { if (updateSelectedMusicThread.IsAlive) { updateSelectedMusicThread.Abort(); ///关闭线程 } } catch { } } System.Threading.Tasks.Task.Run(() => { System.Threading.Thread.Sleep(50); Application.RunOnMainThread(() => { //移除界面 frameLayout.RemoveFromParent(); A31MusicModel.Current.A31PlayStatus.Title = songBtn.Text; System.Threading.Tasks.Task.Run(() => { SendMethod.ListMusicPlay(playListName, clickBtn.Tag, A31MusicModel.Current); }); }); }); }; } } /// /// 定时更新当前播放音乐 /// System.Threading.Thread updateSelectedMusicThread; void UpdateSelectedMusic(VerticalScrolViewLayout middViewLayout) { updateSelectedMusicThread = new System.Threading.Thread(() => { while (this.Parent != null) { System.Threading.Thread.Sleep(1000); Application.RunOnMainThread(() => { try { for (int i = 0; i < middViewLayout.ChildrenCount; i++) { FrameLayout view = (FrameLayout)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.Current.A31PlayStatus.TrackURL == songNameBtn.Tag.ToString()) { volIconBtn.Visible = true; songNameBtn.TextColor = Color.SelectedColor; songNameBtn.X = Application.GetRealWidth(48); artistNameBtn.X = songNameBtn.Right; artistNameBtn.TextColor = Color.SelectedColor; } else { volIconBtn.Visible = false; songNameBtn.TextColor = Color.MusicTxet14Color; songNameBtn.X = Application.GetRealWidth(16); artistNameBtn.X = songNameBtn.Right; artistNameBtn.TextColor = Color.MusicNoTxetColor; } } } catch { } }); } }) { IsBackground = true }; updateSelectedMusicThread.Start(); } } }