| | |
| | | public class MusicMain : FrameLayout |
| | | { |
| | | |
| | | //FrameLayout Frame = null; |
| | | //public MusicListViewMain() { |
| | | // Frame = this; |
| | | //} |
| | | /// <summary> |
| | | /// MusicMain对象构造函数 |
| | | /// </summary> |
| | | public MusicMain() |
| | | { |
| | | Tag = "MusicMain"; |
| | | //进来音乐列表界面先移除之前线程; |
| | | A31MusicModel.RemoveListThread(); |
| | | } |
| | | //public override void RemoveFromParent() |
| | | //{ |
| | | // base.RemoveFromParent(); |
| | | // clearA31Threads(); |
| | | //} |
| | | |
| | | //static void clearA31Threads() |
| | | //{ |
| | | // var threads = threadLists.FindAll((obj) => { return obj.Name == "A31"; }); |
| | | // foreach (var thread in threads) |
| | | // { |
| | | // try |
| | | // { |
| | | // threadLists.Remove(thread); |
| | | // if (thread.IsAlive) |
| | | // { |
| | | // thread.Abort(); |
| | | // } |
| | | // } |
| | | // catch (Exception e) |
| | | // { |
| | | // MainPage.Log("clearA31Threads error : " +e.Message); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | |
| | | /// <summary> |
| | | /// 重写RemoveFromParent方法 |
| | | /// </summary> |
| | | public override void RemoveFromParent() |
| | | { |
| | | base.RemoveFromParent(); |
| | | clearA31Threads(); |
| | | A31MusicModel.ReadMusicStates();//进来没有音乐被收藏过,退出有音乐被收藏过 |
| | | } |
| | | /// <summary> |
| | | /// 创建线程列表 |
| | | /// </summary> |
| | | static List<System.Threading.Thread> threadLists = new List<System.Threading.Thread>(); |
| | | /// <summary> |
| | | /// 移除线程 |
| | | /// </summary> |
| | | static void clearA31Threads() |
| | | { |
| | | var threads = threadLists.FindAll((obj) => { return obj.Name == "A31"; }); |
| | | foreach (var thread in threads) |
| | | { |
| | | try |
| | | { |
| | | threadLists.Remove(thread); |
| | | if (thread.IsAlive) |
| | | { |
| | | ///强制线程抛异常 |
| | | thread.Abort(); |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | MainPage.Log("clearA31Threads error : " + e.Message); |
| | | } |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 显示加载界面 |
| | | /// </summary> |
| | | public static Loading loading = new Loading(); |
| | | /// <summary> |
| | | /// 定义全局对象 |
| | | /// </summary> |
| | | VerticalRefreshLayout verticalRefresh; |
| | | |
| | | public void Show() |
| | | { |
| | | |
| | | #region 界面布局 |
| | | this.BackgroundColor = Color.ViewColor; |
| | | this.BackgroundColor = MusicColor.ViewColor; |
| | | var topView = new TopView(); |
| | | this.AddChidren(topView.TopFLayoutView()); |
| | | topView.topNameBtn.TextID =StringId.a31Music; |
| | |
| | | } |
| | | else |
| | | { |
| | | //clearA31Threads(); |
| | | clearA31Threads(); |
| | | //verticalRefresh.RemoveAll(); |
| | | for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++) |
| | | { |
| | |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 刷新播放器列表 |
| | | /// </summary> |
| | | /// <param name="Yes">是否显示刷新图标</param> |
| | | void SeachMusic(bool Yes = false) |
| | | { |
| | | for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++) |
| | |
| | | a31player.IsEnd = false; |
| | | } |
| | | MusicListView(a31player); |
| | | A31MusicModel.ReadMusicStates(); |
| | | } |
| | | //A31MusicModel.ReadMusicStates(); |
| | | |
| | | }); |
| | | return; |
| | | } |
| | |
| | | //不是我们支持的品牌不支持 |
| | | if (obj.Name != null) |
| | | { |
| | | obj.sid = "00010112345678901234561A1A230123AABB" + obj.UniqueDeviceName; |
| | | obj.sid = "030101123456781A1A230123AABB" + obj.UniqueDeviceName; |
| | | A31MusicModel.A31MusicModelList.Add(obj); |
| | | } |
| | | } |
| | |
| | | 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); |
| | |
| | | { |
| | | if (a31player.ServerClientType == 0) |
| | | { |
| | | new View.DialogView { }.PlayMergence(); |
| | | new View.DialogView { }.PlayMergence(a31player); |
| | | } |
| | | else if (a31player.ServerClientType == 1) |
| | | { |
| | |
| | | }; |
| | | musicView.musicIfonFl.MouseUpEventHandler += clickPlayView; |
| | | musicView.clickBtn.MouseUpEventHandler += clickPlayView;// |
| | | musicView.singerBtn.MouseUpEventHandler += clickPlayView; |
| | | musicView.songNameBtn.MouseUpEventHandler += clickPlayView;// |
| | | musicView.musicNameBtn.MouseUpEventHandler += clickPlayView; |
| | | musicView.regionBtn.MouseUpEventHandler += clickPlayView;// |
| | | |
| | | ///上一曲点击事件 |
| | | musicView.prevBtn.MouseDownEventHandler += (sender, e) => |
| | |
| | | { |
| | | continue; |
| | | } |
| | | //SendMethod.ReadStatus(a31player); |
| | | SendMethod.ReadStatus(a31player); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | musicView.singerBtn.Text = a31player.A31PlayStatus.Artist; |
| | |
| | | }) |
| | | { IsBackground = true, Name = "A31" }; |
| | | musicThread.Start(); |
| | | //threadLists.Add(musicThread); |
| | | threadLists.Add(musicThread); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 读取主从关系 |
| | | /// </summary> |
| | |
| | | { |
| | | A31MusicModel.A31MusicModelList.Add(new A31MusicModel |
| | | { |
| | | sid = "00010112345678901234561A1A230123AABB" + slave.uuid.Replace("uuid:", ""), |
| | | sid = "030101123456781A1A230123AABB" + slave.uuid.Replace("uuid:", ""), |
| | | ServerClientType = -1,//从的 |
| | | IPAddress = slave.ip, |
| | | MainPlayIP = a31player.IPAddress, |