wxr
2020-08-11 2bec9c838d2d688025698de8ec1de401ffd7dd1f
HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs
@@ -8,51 +8,64 @@
    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;
@@ -82,7 +95,7 @@
            }
            else
            {
                //clearA31Threads();
                clearA31Threads();
               //verticalRefresh.RemoveAll();
                for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
                {
@@ -131,7 +144,10 @@
                });
            }
        }
        /// <summary>
        /// 刷新播放器列表
        /// </summary>
        /// <param name="Yes">是否显示刷新图标</param>
        void SeachMusic(bool Yes = false)
        {
            for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
@@ -181,8 +197,9 @@
                                a31player.IsEnd = false;
                            }
                            MusicListView(a31player);
                            A31MusicModel.ReadMusicStates();
                        }
                       //A31MusicModel.ReadMusicStates();
                    });
                    return;
                }
@@ -192,7 +209,7 @@
                    //不是我们支持的品牌不支持
                    if (obj.Name != null)
                    {
                        obj.sid = "00010112345678901234561A1A230123AABB" + obj.UniqueDeviceName;
                        obj.sid = "030101123456781A1A230123AABB" + obj.UniqueDeviceName;
                        A31MusicModel.A31MusicModelList.Add(obj);
                    }
                }
@@ -217,7 +234,6 @@
            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);
@@ -255,7 +271,7 @@
            {
                if (a31player.ServerClientType == 0)
                {
                    new View.DialogView { }.PlayMergence();
                    new View.DialogView { }.PlayMergence(a31player);
                }
                else if (a31player.ServerClientType == 1)
                {
@@ -277,6 +293,10 @@
            };
            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) =>
@@ -324,7 +344,7 @@
                    {
                        continue;
                    }
                    //SendMethod.ReadStatus(a31player);
                    SendMethod.ReadStatus(a31player);
                    Application.RunOnMainThread(() =>
                    {
                        musicView.singerBtn.Text = a31player.A31PlayStatus.Artist;
@@ -366,10 +386,8 @@
            })
            { IsBackground = true, Name = "A31" };
            musicThread.Start();
            //threadLists.Add(musicThread);
            threadLists.Add(musicThread);
        }
        /// <summary>
        /// 读取主从关系
        /// </summary>
@@ -427,7 +445,7 @@
                                {
                                    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,