音乐播放器: 1505/1 1505/head
authorluozheng <1732036298@qq.com>
Sat, 7 Dec 2024 09:19:08 +0000 (17:19 +0800)
committerluozheng <1732036298@qq.com>
Sat, 7 Dec 2024 09:19:08 +0000 (17:19 +0800)
1.解决applist音乐应用点击播放按钮播放音乐后,退出界面再进入,按钮变成暂停状态(通过设置按钮初值解决)
2.解决applist音乐应用点击播放按钮播放音乐后,退出界面再进入,音乐进度条未及时更新问题(通过设置进度条初值解决)

code/sdk/application/wearable/fd230app/nativeui/player/include/PlayersModel.h
code/sdk/application/wearable/fd230app/nativeui/player/include/PlayersView.h
code/sdk/application/wearable/fd230app/nativeui/player/src/PlayersModel.cpp
code/sdk/application/wearable/fd230app/nativeui/player/src/PlayersView.cpp

index 9710ac9..fc2a792 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-08-05 15:20:03
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-12-05 21:56:01
+ * @LastEditTime: 2024-12-07 17:03:05
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/player/include/PlayersModel.h
  */
 
@@ -127,6 +127,7 @@ public:
     void showIdToMusicNameMapData(void);
     int getPreShowView(void);
     void setPreShowView(int index);
+    void updatePlayProgress();
     // /* -------------------------------------------------------------------------- */
 private:
     bool phonePlayButtonState{false};
index febe0e3..6595ceb 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-08-05 15:20:03\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-12-05 20:38:46\r
+ * @LastEditTime: 2024-12-07 17:06:06\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/player/include/PlayersView.h\r
  */\r
 \r
@@ -107,6 +107,7 @@ namespace OHOS
         void OnClickBackKeyToMainMusicPlayerView(void);\r
         void StopCurPlayingMusic();\r
         void UpdateVolumeValue(void);\r
+        void initPlayProgress(void);\r
 \r
         VolumeSettingView *GetVolumeSettingView();\r
         PlayerListDelSongView *GetPlayerListDelSongView();\r
index 7dd2ad8..bf5da77 100644 (file)
@@ -901,6 +901,25 @@ bool PlayersModel::GetCurrentMusicIsPlaying(void)
         }
     }
 
+    //更新音乐进度条
+    void PlayersModel::updatePlayProgress() 
+    {
+        // 获取当前播放时间
+        PlayersModel::GetInstance()->GetPlayerCtr()->GetCurrentTime(playerCurrentTime_);
+        // 获取音乐总时长
+        PlayersModel::GetInstance()->GetDuration(playerMusicDuration_);
+        if (playerMusicDuration_!= 0) {
+            playerProgressValue_ = (playerCurrentTime_ * 100) / playerMusicDuration_;
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "playerProgressValue_ %lld", playerProgressValue_);
+        } else {
+            playerProgressValue_ = 0;  // 100: max progress value
+        }
+        // 设置圆形进度条进度
+        PlayersModel::GetInstance()->SetCircleProgress(playerProgressValue_);
+        // 设置播放进度显示
+        PlayersPresenter::GetInstance()->SetPlaybackProgress(playerProgressValue_);
+    }
+
     void PlayersModel::SetCircleProgress()
     {
         PlayersView *playersView = PlayersView::GetInstance();
@@ -932,19 +951,7 @@ bool PlayersModel::GetCurrentMusicIsPlaying(void)
             }
             if (state_ == UICheckBox::UICheckBoxState::SELECTED)
             {
-                PlayersModel::GetInstance()->GetPlayerCtr()->GetCurrentTime(playerCurrentTime_);
-                PlayersModel::GetInstance()->GetDuration(playerMusicDuration_);
-                if (playerMusicDuration_ != 0)
-                {
-                    playerProgressValue_ = (playerCurrentTime_ * 100) / playerMusicDuration_;
-                    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "playerProgressValue_ %lld", playerProgressValue_);
-                }
-                else
-                {
-                    playerProgressValue_ = 0; // 100: max progress value
-                }
-                PlayersModel::GetInstance()->SetCircleProgress(playerProgressValue_);
-                PlayersPresenter::GetInstance()->SetPlaybackProgress(playerProgressValue_);
+                updatePlayProgress();//更新音乐进度条
             }
         }
         else //如果当前为手机音乐
index aa2a8ee..1c99bb5 100644 (file)
@@ -664,6 +664,9 @@ namespace OHOS
             }\r
         }\r
         play_or_pause_Button->SetPosition(195, 195, 80, 80);\r
+        uint8_t state = UICheckBox::UICheckBoxState::MAX_STATUS_NUM;\r
+        bool isplayingflag = PlayersModel::GetInstance()->GetCurrentMusicIsPlaying();//获取当前音乐是否是在播放中\r
+        play_or_pause_Button->SetState(isplayingflag?UICheckBox::UICheckBoxState::SELECTED:UICheckBox::UICheckBoxState::UNSELECTED);\r
         play_or_pause_Button->SetOnClickListener(clickListener);\r
         return true;\r
     }\r
@@ -876,6 +879,12 @@ namespace OHOS
         }\r
     }\r
 \r
+    //初始化音乐播放器的进度条\r
+    void PlayersView::initPlayProgress(void)\r
+    {\r
+        PlayersModel::GetInstance()->updatePlayProgress();\r
+    }\r
+\r
     /// @brief 设置音乐播放模式按钮是否可点击\r
     /// @param musicSourceType 音乐来源类型 false:手表音乐 true 手机音乐\r
     /// @param phoneMusicConnectStatus 手机音乐连接状态\r
@@ -1047,6 +1056,7 @@ namespace OHOS
         }\r
         /* -------------------------------------------------------------------------- */\r
         UpdatePlayerView();\r
+        initPlayProgress();\r
         /* -------------------------------------------------------------------------- */\r
 \r
         // PlayersListGroup::GetInstance()->SetUpListCase();\r