wxr
2024-12-02 ea0b1e8e5f43c5fd0a7d479e25ede3b8cbea464a
HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs
@@ -43,7 +43,7 @@
        {
            ///1秒定时更新状态
            timerUpdateStatus();
            TimerUpdateStatus();
            #region   ---界面布局---
            this.BackgroundColor = MusicColor.ViewColor;
            topView = new TopView();
@@ -71,7 +71,7 @@
            #endregion
            #region   ---界面点击事件---
            playView.collectIconBtn.Visible = false;//先暂时隐藏收藏功能
            //playView.collectIconBtn.Visible = false;//先暂时隐藏收藏功能
            //收藏图标事件
            playView.collectIconBtn.MouseUpEventHandler += (sender, e) =>
            {
@@ -84,7 +84,7 @@
                {
                    A31MusicModel.Current.functionMusic.collect = false;
                }
                A31MusicModel.Current.functionMusic.CollectFunction();
            };
            ///切换播放模式点击事件;
            playView.playOrderBtn.MouseUpEventHandler += (sender, e) =>
@@ -161,7 +161,7 @@
                        return name == musicInfo.name;
                    }))
                    {
                        A31MusicModel.Current.LoveMusicInfoList.Add(new Songs { name = name, time = songTime });
                        A31MusicModel.Current.LoveMusicInfoList.Add(new SongInfo { name = name, time = songTime });
                    }
                }
                else
@@ -182,17 +182,31 @@
                UI2.FuntionControlView.Music.View.MyListView myListView = new UI2.FuntionControlView.Music.View.MyListView();
                myListView.frameLayout(this, A31MusicModel.Current);
                myListView.dialogFra.AddChidren(loading);//dialogFra刷新图标父控件
                loading.Start();
                ///下拉刷新
                myListView.verticalScrolViewLayout.BeginHeaderRefreshingAction += () =>
                {
                    System.Threading.Tasks.Task.Run(() =>
                    myListView.verticalScrolViewLayout.EndHeaderRefreshing(); //结束刷新
                    loading.Start();
                    System.Threading.Tasks.Task.Run((() =>
                    {
                        try
                        {
                            A31MusicModel.Current.palyLists.Clear();
                            if (A31MusicModel.Current.palyLists.Count == 0)
                            A31MusicModel.Current.CurrentPlayMusicInfoList.Clear();
                            if (A31MusicModel.Current.CurrentPlayMusicInfoList.Count == 0)
                            {
                                SendMethod.Current.GetPalyList(A31MusicModel.Current.functionMusic);
                                SendMethod.Current.GetCurrentPalyList(A31MusicModel.Current.functionMusic, () =>
                                {
                                    Application.RunOnMainThread(() =>
                                    {
                                        myListView.verticalScrolViewLayout.RemoveAll();
                                        var listName = A31MusicModel.Current.functionMusic.GetAttrState(KeyProperty.playlist_name);
                                        var source = A31MusicModel.Current.functionMusic.GetAttrState(KeyProperty.source);
                                        var musicList = A31MusicModel.Current.GetSongList(listName);
                                        A31SongPlay.SongListView(myListView.verticalScrolViewLayout, musicList, listName, source, myListView.popFra);
                                    });
                                });
                            }
                        }
@@ -203,15 +217,17 @@
                        {
                            Application.RunOnMainThread(() =>
                            {
                                myListView.verticalScrolViewLayout.EndHeaderRefreshing();
                                myListView.verticalScrolViewLayout.RemoveAll();
                                var listName = A31MusicModel.Current.functionMusic.GetAttrState(KeyProperty.playlist_name);
                                var musicList = A31MusicModel.Current.GetSongList(listName);
                                A31SongPlay.SongListView(myListView.verticalScrolViewLayout, musicList, listName, myListView.popFra);
                                loading.Hide();
                                //myListView.verticalScrolViewLayout.EndHeaderRefreshing();
                                //myListView.verticalScrolViewLayout.RemoveAll();
                                //var listName = A31MusicModel.Current.functionMusic.GetAttrState(KeyProperty.playlist_name);
                                //var source = A31MusicModel.Current.functionMusic.GetAttrState(KeyProperty.source);
                                //var musicList = A31MusicModel.Current.GetSongList(listName);
                                //A31SongPlay.SongListView(myListView.verticalScrolViewLayout, musicList, listName, source, myListView.popFra);
                            });
                        }
                    });
                    //结束刷新
                    }));
                };
                ///移除界面
@@ -220,14 +236,14 @@
                     myListView.popFra.RemoveFromParent();
                 };
                myListView.backIextBtn.MouseUpEventHandler += removeFromParentView;
                myListView.popFra.MouseUpEventHandler += removeFromParentView;
                //myListView.popFra.MouseUpEventHandler += removeFromParentView;
                #endregion
                //var listName = A31MusicModel.Current.functionMusic.GetAttribute("playlist_name").ToString();
                //var musicList = A31MusicModel.Current.GetSongList(listName);
                //new A31SongPlay { }.SongListView(myListView.verticalScrolViewLayout, musicList, listName);
                PlayListView(myListView.popFra, myListView.verticalScrolViewLayout);
                UpdateSelectedMusic(myListView.popFra, myListView.verticalScrolViewLayout);
                this.PlayListView(myListView.popFra, myListView.verticalScrolViewLayout, loading);
                this.UpdateSelectedMusic(myListView.popFra, myListView.verticalScrolViewLayout);
            };
            ///音量图标点击事件
@@ -329,7 +345,7 @@
        /// <summary>
        /// 定时更新状态
        /// </summary>       
        void timerUpdateStatus()
        void TimerUpdateStatus()
        {
            timerThread = new System.Threading.Thread((obj) =>
            {
@@ -449,7 +465,7 @@
                            if (A31MusicModel.Current.functionMusic.GetAttrState(KeyProperty.on_off) == ValueProperty.on)
                            {
                                //音乐在播放时,再计算播放时间(现在时间=原来时间+1秒)
                                playSecond += (int)(DateTime.Now - A31MusicModel.Current.LastDateTime).TotalSeconds;
                                //playSecond += (int)(DateTime.Now - A31MusicModel.Current.LastDateTime).TotalSeconds;
                                playSecond += 1;//表示加上等待的时间1s
                                ///歌曲记录暂时时间写入缓存;
                                A31MusicModel.Current.functionMusic.SetAttrState(KeyProperty.playing_time, playSecond);
@@ -597,24 +613,34 @@
        /// 加载播放音乐列表View
        /// </summary>
        /// <param name="verticalScrolViewLayout"></param>
        void PlayListView(FrameLayout frameLayout, VerticalRefreshLayout verticalScrolViewLayout)
        private void PlayListView(FrameLayout frameLayout, VerticalRefreshLayout verticalScrolViewLayout, Loading loading)
        {
            verticalScrolViewLayout.RemoveAll();
            //获取播放器名称
            var listName = A31MusicModel.Current.functionMusic.GetAttrState(KeyProperty.playlist_name);
            var source = A31MusicModel.Current.functionMusic.GetAttrState(KeyProperty.source);
            //获取缓存歌曲列表
            var musicList = A31MusicModel.Current.GetSongList(listName);
            loading.Start();
            if (musicList.Count == 0)
            {
                System.Threading.Tasks.Task.Run(() =>
                System.Threading.Tasks.Task.Run((() =>
                {
                    try
                    {
                        A31MusicModel.Current.palyLists.Clear();
                        if (A31MusicModel.Current.palyLists.Count == 0)
                        A31MusicModel.Current.CurrentPlayMusicInfoList.Clear();
                        if (A31MusicModel.Current.CurrentPlayMusicInfoList.Count == 0)
                        {
                            //获取歌曲列表
                            SendMethod.Current.GetPalyList(A31MusicModel.Current.functionMusic);
                            SendMethod.Current.GetCurrentPalyList(A31MusicModel.Current.functionMusic, () =>
                            {
                                Application.RunOnMainThread(() =>
                                {
                                    musicList = A31MusicModel.Current.GetSongList(listName);
                                    A31SongPlay.SongListView(verticalScrolViewLayout, musicList, listName, source, frameLayout);
                                });
                            });
                        }
                    }
@@ -625,21 +651,26 @@
                    {
                        Application.RunOnMainThread(() =>
                        {
                            musicList = A31MusicModel.Current.GetSongList(listName);
                            A31SongPlay.SongListView(verticalScrolViewLayout, musicList, listName, frameLayout);
                            loading.Hide();
                            //musicList = A31MusicModel.Current.GetSongList(listName);
                            //A31SongPlay.SongListView(verticalScrolViewLayout, musicList, listName, source, frameLayout);
                        });
                    }
                });
                }));
            }
            else
            {
                A31SongPlay.SongListView(verticalScrolViewLayout, musicList, listName, frameLayout);
                Application.RunOnMainThread(() =>
                {
                    loading.Hide();
                    A31SongPlay.SongListView(verticalScrolViewLayout, musicList, listName, source, frameLayout);
                });
            }
        }
        /// <summary>
        /// 定时更新当前播放音乐
        /// </summary>
        void UpdateSelectedMusic(FrameLayout frameLayout, VerticalRefreshLayout middViewLayout)
        private void UpdateSelectedMusic(FrameLayout frameLayout, VerticalRefreshLayout middViewLayout)
        {
            UpdateThread.updateCurrMusicThread(frameLayout, middViewLayout, A31MusicModel.Current);
        }