音乐和录音组件使用时添加判断 1191/1
authorluozheng <1732036298@qq.com>
Mon, 14 Oct 2024 12:33:14 +0000 (20:33 +0800)
committerluozheng <1732036298@qq.com>
Mon, 14 Oct 2024 12:33:14 +0000 (20:33 +0800)
code/sdk/application/wearable/fd230app/nativeui/player/src/PlayersPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/player/src/PlayersView.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPlayerView.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPresenter.cpp
code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp

index 7e08f45..be5a1f5 100644 (file)
@@ -625,10 +625,8 @@ void ButtonOnClickListener::PlayerButtonOnClick()
     if (GetCurrCallNum() != 0 && GetScoConnectState() == HFP_SCO_STATE_CONNECTED) {\r
         if (state == UICheckBox::UICheckBoxState::SELECTED) {\r
             playersView->SetPlayerButtonState(UICheckBox::UICheckBoxState::UNSELECTED);\r
-            playersView->GetPlayerButton()->Invalidate();\r
         } else {\r
             playersView->SetPlayerButtonState(UICheckBox::UICheckBoxState::SELECTED);\r
-            playersView->GetPlayerButton()->Invalidate();\r
         }\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[PlayerButtonOnClick] calling phone");\r
         return;\r
@@ -730,13 +728,19 @@ void ButtonOnClickListener::SoundButtonOnClick()
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundButtonOnClick playersView nullptr err");\r
         return;\r
     }\r
+    VolumeSettingView *volumeSettingView = playersView->GetVolumeSettingView();\r
+    if(volumeSettingView == nullptr)\r
+    {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundButtonOnClick volumeSettingView nullptr err");\r
+        return;\r
+    }\r
     playersView->ChangeView(PlayersView::MAIN_MUSICPLAYER_VIEW, PlayersView::MUSIC_VOLUME_CONTROL_VIEW);\r
-    int32_t volume = uapi_systemVolumeGet();\r
+    int32_t volume = uapi_systemVolumeGet(); //获取系统音量\r
     WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "current volume = %d", volume);\r
-    if( playersView->GetVolumeSettingView()->GetProgress()) {\r
-        playersView->GetVolumeSettingView()->GetProgress()->SetValue(volume);\r
+    if(volumeSettingView->GetProgress()) {\r
+        volumeSettingView->GetProgress()->SetValue(volume);\r
     }\r
-    VolumeSliderEventListener *volumeSliderEventListener = playersView->GetVolumeSettingView()->GetVolumeEventListener();\r
+    VolumeSliderEventListener *volumeSliderEventListener = volumeSettingView->GetVolumeEventListener();\r
     if (volumeSliderEventListener == nullptr) {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundButtonOnClick volumeSliderEventListener nullptr err");\r
         return;\r
@@ -1618,7 +1622,6 @@ void PlayersPresenter::PlayerbackReset(void)
         return;\r
     }\r
     playersView->SetPlayerButtonState(UICheckBox::UICheckBoxState::UNSELECTED);\r
-    playersView->GetPlayerButton()->Invalidate();\r
 }\r
 \r
 // 播放器按钮复位\r
@@ -1636,6 +1639,5 @@ void PlayersPresenter::PlayerHeadsetReset(void)
         playersView->SetPlayerButtonState(UICheckBox::UICheckBoxState::UNSELECTED);\r
     }\r
 \r
-    playersView->GetPlayerButton()->Invalidate();\r
 }\r
 } // namespace OHOS\r
index f3e214c..912de71 100644 (file)
@@ -152,6 +152,10 @@ namespace OHOS
     /*获取音乐播放和暂停复选按钮的状态*/\r
     UICheckBox::UICheckBoxState PlayersView::GetPlayerButtonState(void)\r
     {\r
+        if(play_or_pause_Button == nullptr)\r
+        {\r
+            return UICheckBox::UICheckBoxState::UNSELECTED;\r
+        }\r
         return play_or_pause_Button->GetState();\r
     }\r
 \r
@@ -167,7 +171,10 @@ namespace OHOS
 \r
     void PlayersView::SetPlayerCtrVolume(float leftVolume, float rightVolume)\r
     {\r
-        PlayersModel::GetInstance()->GetPlayerCtr()->SetVolume(leftVolume, rightVolume);\r
+        if (PlayersModel::GetInstance()->GetPlayerCtr().get() != nullptr) \r
+        {\r
+            PlayersModel::GetInstance()->GetPlayerCtr()->SetVolume(leftVolume, rightVolume);\r
+        }\r
     }\r
 \r
     PlayersView *PlayersView::GetInstance(void)\r
index 160da79..e2be3b0 100644 (file)
@@ -373,6 +373,7 @@ namespace OHOS
         if (RecordingPlayPauseButton)\r
         {\r
             RecordingPlayPauseButton->SetState(state);\r
+            RecordingPlayPauseButton->Invalidate();\r
         }\r
     }\r
 \r
@@ -381,6 +382,10 @@ namespace OHOS
      */\r
     UICheckBox::UICheckBoxState RecordingPlayerView::GetPlayerButtonState(void)\r
     {\r
+        if (RecordingPlayPauseButton == nullptr)\r
+        {\r
+            return UICheckBox::UICheckBoxState::UNSELECTED;\r
+        }\r
         return RecordingPlayPauseButton->GetState();\r
     }\r
 \r
index 34393ae..46f7134 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-03-30 09:14:38\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-10-14 09:43:08\r
+ * @LastEditTime: 2024-10-14 19:26:52\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPresenter.cpp\r
  */\r
 \r
@@ -720,7 +720,6 @@ namespace OHOS
                 else\r
                 {\r
                     p_RecordingPlayerView->SetPlayerButtonState(UICheckBox::UICheckBoxState::UNSELECTED);\r
-                    p_RecordingPlayerView->GetPlayerButton()->Invalidate();\r
                 }\r
                 PlayerIntrptListener->ResetFlag();\r
                 PlayerIntrptListener->SetPaused(true);\r
@@ -767,7 +766,6 @@ namespace OHOS
                 else\r
                 {\r
                     p_RecordingPlayerView->SetPlayerButtonState(UICheckBox::UICheckBoxState::SELECTED);\r
-                    p_RecordingPlayerView->GetPlayerButton()->Invalidate();\r
                 }\r
                 /* ------------------------------- 6.重置中断监听器状态 ------------------------------ */\r
                 PlayerIntrptListener->ResetFlag();\r
index 163e6fb..a06ade3 100644 (file)
@@ -963,7 +963,8 @@ void MsgCenterNotifyCat1dialProc(const Topic topic, Request* req)
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MsgCenterNotify memcpy_s request data fail!");
     } else {
 
-    int ret = PlayersModel::GetInstance()->PlayerStop();
+    // int ret = PlayersModel::GetInstance()->PlayerStop();
+    stopPlayingMusic();
     //uapi_hfp_disconnect();
     if(strcmp(call_data,"SOS")==0)
     {