#include "uiservice/include/ui_service.h"\r
#include "power_display_service.h"\r
#include "record/include/RecordingModel.h"\r
-\r
+#include <NativeAbility.h>\r
+#include "AppViewIDs.h"\r
+#include "player/include/PlayersView.h"\r
#ifdef __cplusplus\r
extern "C"\r
{\r
OHOS::HeartModel::GetInstance()->Heart_Control(OHOS::HeartState::Start, OHOS::HeartCheck::PASSIVITY);\r
}\r
}\r
- if(OHOS::RecordingModel::GetInstance()->GetRecordingPlayerViewCreate())\r
+ int16_t curviewid = OHOS::NativeAbility::GetInstance().GetCurSliceId();\r
+ if(curviewid != VIEW_MAIN && OHOS::PlayersView::GetInstance()) //如果当前不在主界面且音乐界面不为空\r
+ {\r
+ OHOS::UICheckBox::UICheckBoxState state = OHOS::PlayersView::GetInstance()->GetPlayerButtonState();\r
+ if(state == OHOS::UICheckBox::UICheckBoxState::SELECTED)\r
+ {\r
+ SendMsgToUIService(UI_UPDATE_PLAYERPROCESS, 0, nullptr, 0);\r
+ }\r
+ }\r
+ else if(OHOS::RecordingModel::GetInstance()->GetRecordingPlayerViewCreate())\r
{\r
SendMsgToUIService(UI_UPDATE_RECORDPROCESS, 0, nullptr, 0);\r
}\r
{VIEW_TAKEPHOTOS, PNG_APPLIST_TACKEPHOTOS_IMAGE, PNG_APPLIST_TACKEPHOTOS_IMAGE, PNG_APPLIST_DEFAULT_IMG, "遥控拍照", STR_REMOTE_SHOOTING, nullptr},
{VIEW_MAIN_ALARM, PNG_APPLIST_ALARM_IMAGE, PNG_APPLIST_ALARM_IMAGE, PNG_APPLIST_DEFAULT_IMG, "闹钟", STR_ALARM, nullptr},
{VIEW_FIND_PHONE, PNG_APPLIST_FINDPHONE_IMAGE, PNG_APPLIST_FINDPHONE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "查找手机", STR_FIND_PHONE, nullptr},
- // {VIEW_MUSIC_PLAYER, PNG_APPLIST_MUSIC_IMAGE, PNG_APPLIST_MUSIC_IMAGE, PNG_APPLIST_DEFAULT_IMG, "音乐播放器", STR_MUSIC, nullptr},
+ {VIEW_MUSIC_PLAYER, PNG_APPLIST_MUSIC_IMAGE, PNG_APPLIST_MUSIC_IMAGE, PNG_APPLIST_DEFAULT_IMG, "音乐播放器", STR_MUSIC, nullptr},
{VIEW_OFFLINEVOICE, PNG_APPLIST_SMART_IMAGE, PNG_APPLIST_SMART_IMAGE, PNG_APPLIST_DEFAULT_IMG, "语音助手", STR_VOICE_ASSISTANT, nullptr},
{VIEW_SCHEDULE, PNG_APPLIST_SCHEDULE_IMAGE, PNG_APPLIST_SCHEDULE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "schedule", STR_SCHEDULE, nullptr},
{VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_DEFAULT_IMG, "设置", STR_SETTINGS, nullptr},
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-08-01 18:02:51
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-06 15:09:50
+ * @LastEditTime: 2024-08-29 17:59:43
* @FilePath: /xts_origin/FD230/code/sdk/application/wearable/fd230app/nativeui/musicplayer/include/MusicPlayerView.h
*/
#include "BaseView.h"
#include "View.h"
+#include "player/include/PlayersView.h"
namespace OHOS
{
private:
void CreateMusicPlayerView(void);
void ClearAll(void);
+ PlayersView *playersView{nullptr};
bool viewInitStatus{false};
};
}
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-05-07 11:25:58
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-06 15:10:00
+ * @LastEditTime: 2024-08-29 18:03:54
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/MusicPlayer/src/MusicPlayerView.cpp
*/
#include "musicplayer/include/MusicPlayerPresenter.h"
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MusicPlayerView::ClearAll");
if (viewInitStatus)
{
+ if (playersView)
+ {
+ delete playersView;
+ playersView = nullptr;
+ }
}
}
void MusicPlayerView::CreateMusicPlayerView(void)
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MusicPlayerView::CreateMusicPlayerView");
+ if (playersView == nullptr)
+ {
+ playersView = new PlayersView();
+ if (playersView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "playersView new fail!!");
+ return;
+ }
+ playersView->PreLoad();
+ container_->Add(playersView);
+ }
}
void MusicPlayerView::OnStart()
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-08-05 15:20:03
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-20 17:18:32
+ * @LastEditTime: 2024-08-29 18:33:50
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/player/include/PlayersModel.h
*/
bool GetCurrentMusicIsPlaying(void);
void PlayerMusic_StartTimer(uint32_t interval = 1000);
void PlayerMusic_StopTimer(void);
+ void SetCircleProgress();
+ void UpdatePlayerProcess(void);
private:
bool musicSourceFlag{false};//音乐来源标志:false:默认为手表音乐,true:手机音乐
+ int64_t playerCurrentTime_{0};
+ int64_t playerMusicDuration_{0};
+ int64_t playerProgressValue_{0};
private:
PlayersCaseListAdapter *m_PlayersCaseListAdapter{nullptr};
int64_t duration_{0};
#include "cmsis_os.h"
#include <cmsis_os2.h>
#include <service/graphic_service.h>
+#include "MainViewSample.h"
namespace OHOS {
static constexpr int VOLUME_MAXIMUM = 100;
g_PlayerTimes = 5;
}
}
+
+ void PlayersModel::SetCircleProgress()
+ {
+ PlayersView *playersView = PlayersView::GetInstance();
+ if (playersView == nullptr)
+ {
+ return;
+ }
+ UICircleProgress *playbackProgress = playersView->GetPlaybackProgress();
+ if (playbackProgress == nullptr)
+ {
+ return;
+ }
+ int32_t playerState;
+ PlayersModel::GetInstance()->GetPlayerCtr()->GetPlayerState(playerState);
+ UICheckBox::UICheckBoxState state_ = playersView->GetPlayerButtonState();
+ if ((playerState != PLAYER_STARTED) && (state_ == UICheckBox::UICheckBoxState::SELECTED))
+ {
+ playersView->SetPlayerButtonState(UICheckBox::UICheckBoxState::UNSELECTED);
+ }
+ else if ((playerState == PLAYER_STARTED) && (state_ == UICheckBox::UICheckBoxState::UNSELECTED))
+ {
+ playersView->SetPlayerButtonState(UICheckBox::UICheckBoxState::SELECTED);
+ }
+ 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_ = 100; // 100: max progress value
+ }
+ PlayersModel::GetInstance()->SetCircleProgress(playerProgressValue_);
+ PlayersPresenter::GetInstance()->SetPlaybackProgress(playerProgressValue_);
+ }
+ }
+
+ //更新音乐进度条
+ void PlayersModel::UpdatePlayerProcess(void)
+ {
+ if(MainViewSample::GetInstance()) //主界面就不调用刷新这个进度条刷新了
+ {
+ return;
+ }
+ SetCircleProgress();
+ }
}
#ifdef __cplusplus
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-12 11:44:04
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-28 15:50:33
+ * @LastEditTime: 2024-08-29 18:44:06
* @FilePath: /FD230/code/sdk/application/wearable/nativeapp/nativeui/uiservice/include/ui_service.h
*/
/*
UI_UPDATE_USER_QUESTION_STR,//更新用户问题的字符串
UI_UPDATE_AI_ANSWER_STR, //更新AI答案的字符串
UI_HAND_WATCH_FIRST_PAIRED, //手表已配对:给第一次手表启动用配对成功调用
- UI_UPDATE_RECORDPROCESS, //更新录音进度条
+ UI_UPDATE_RECORDPROCESS, //更新录音进度条
+ UI_UPDATE_PLAYERPROCESS, //处理更新音乐进度条
UI_UPDATE_OBU_MESSAGE,
MAX_NUM_HANDLER,
} UiServiceMsgId;
static void HandleWatchFirstPaired(Request *request);
static void HandleUpdateOBUMessage(Request *request);
static void HandleUpdateRecordProcess(Request *request);
+ static void HandleUpdatePlayerProcess(Request *request);
static void HandleUpdateSleep(Request *request);
static void HandleUpdateMessage(Request *request);
static void HandleUpdateHeartRate(Request *request);
{UI_UPDATE_OBU_MESSAGE, HandleUpdateOBUMessage},
{UI_AI_JUMP_TO_LISTENING_VIEW, HandleAiJumpToListeningMessage},
{UI_UPDATE_RECORDPROCESS, HandleUpdateRecordProcess},
+ {UI_UPDATE_PLAYERPROCESS, HandleUpdatePlayerProcess},
{UI_UPDATE_SLEEP_DATA, HandleUpdateSleep},
{UI_UPDATE_MESSAGE_DATA, HandleUpdateMessage},
std::bind(&OHOS::AiVoiceModel::ChangeToAIVoiceListeningView, &OHOS::AiVoiceModel::GetInstance(), state));
}
+ //处理更新录音进度条
void HandleUpdateRecordProcess(Request *request)
{
WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateRecordProcess");
std::bind(&OHOS::RecordingModel::UpdateRecordProcess, OHOS::RecordingModel::GetInstance()));
}
+ //处理更新音乐进度条
+ void HandleUpdatePlayerProcess(Request *request)
+ {
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdatePlayerProcess");
+ GraphicService::GetInstance()->PostGraphicEvent(
+ std::bind(&OHOS::PlayersModel::UpdatePlayerProcess, OHOS::PlayersModel::GetInstance()));
+ }
+
// 更新睡眠数据
void HandleUpdateSleep(Request *request)
{