void SetRecordingPlayerUri(std::string src);
void SetRecordingPlayButtonState(bool state);
void SetCircleProgress(int value);
+ int GetCircleProgress(void);
void AudioInit(void);
void ConvertMillisecondToTime(int32_t milliseconds);
- int RecordingPlayerInit(void);
+ int RecordingPlayerInit(int index);
int RecordingPlayerStat(void);
int GetRecordingPlayerState(void);
- int RecordingPlayerPlay(void);
- int RecordingPlayerPause(void);
int RecordingPlayerStop(void);
- void NextSong(int index);
void PreviousPlayout(void);
+ void NextPlayout(void);
int ResetSourceAndPrepare(void);
int ResetPlayerModuleStatus(void);
/* -------------------------------------------------------------------------- */
void InitRecordingListItem();
std::vector<RecordingListItem> &GetRecordinglistItems();
+ std::string GetCurrentPlayRecordingName(void);
int &GetRecordingListNum();
std::string GetCleanFileName(const std::string &filePath);
void SearchFiles(const std::string &directory, std::vector<std::string> &fileNames, int &mp3FileCount);
void KeepTotalRecordDuration(std::string time);
std::string GetTotalRecordDuration(void) const;
std::string Getyyyymmhhh_date(void) const;
+ std::string &Getyyyymmhhh_dateAndTotalRecordDuration(void);
std::shared_ptr<RecordingPlayerInterruptListener> GetRecordingPlayerIntrptListener(void);
void ClearActivateAudioInterrupt(void);
std::shared_ptr<Player> GetPlayerCtr(void);
int index; // 保存被点击录音的下标
std::string yyyymmhhh_date; // 保存年月日时间
std::string TotalRecordDuration; // 保存录音的总时长
+ std::string RecordingTimeAndDuration; // 录音日期和录音时长
};
}
UILabelExt *GetRecordingTimeAndDurationLabel(void);\r
UICheckBox * GetPlayerButton(void);\r
void SetPlayerButtonState(UICheckBox::UICheckBoxState state);\r
+ UICheckBox::UICheckBoxState GetPlayerButtonState(void);\r
+ void ResetComponentStatus(void);\r
UICircleProgress * GetPlayerProgressBar(void);\r
private:\r
UILabelExt *SetUpLabel(LabelConfig &labelconfig); // 设置标签\r
~RecordingPlayerViewOnClickListener() {}\r
\r
bool OnClick(UIView &view, const ClickEvent &event) override;\r
+ void PlayerButtonOnClick(void);\r
};\r
\r
/*\r
class RecordingPresenter : public Presenter<RecordingView>,\r
public UIView::OnClickListener,\r
public RootView::OnKeyActListener,\r
- public UIView::OnDragListener,\r
- public UICheckBox::OnChangeListener\r
+ public UIView::OnDragListener\r
{\r
public:\r
RecordingPresenter();\r
bool OnClick(UIView &view, const ClickEvent &event) override;\r
bool OnDrag(UIView &view, const DragEvent &event) override;\r
bool OnDragEnd(UIView &view, const DragEvent &event) override;\r
- bool OnChange(UICheckBox::UICheckBoxState state) override;\r
bool OnKeyAct(UIView &view, const KeyEvent &event) override;\r
RecordingModel *p_RecordingModel{nullptr};\r
};\r
{
CircleProgress = value;
}
+
+ /*
+ * @brief 获取播放进度
+ */
+ int RecordingModel::GetCircleProgress(void)
+ {
+ return CircleProgress;
+ }
+
/*
* @brief 获取录音播放器中断监听类
*/
/*
* @brief 录音播放初始化,包括录音文件名,创建资源对象,录音时间和总时长
*/
- int RecordingModel::RecordingPlayerInit(void)
+ int RecordingModel::RecordingPlayerInit(int index)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingModel::RecordingPlayerInit");
int32_t ret;
- std::string recordingFileName = fileNames[GetClickRecordingIndex()];
+ std::string recordingFileName = fileNames[index];
if (recordingFileName.c_str() == nullptr)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "No Recording files!!");
{
int ret;
/* ------------------------------ 设置播放器的回调函数。 ----------------------------- */
- ResetPlayerModuleStatus();
- ResetSourceAndPrepare();
+ if (GetRecordingPlayerState() != PlayerStates::PLAYER_PREPARED) //如果录音播放器状态为Prepared状态无需重置回到IDLE状态和setsource,Prepare
+ {
+ ResetPlayerModuleStatus();
+ ResetSourceAndPrepare();
+ }
PlayerCtr->SetPlayerCallback(PlayerCallback);
/* ----------------------------- 如果未激活音频中断处理: ----------------------------- */
if (!IsActivateAudioInterrupt)
return OHOS_SUCCESS;
}
- /*
- * @brief 录音播放器播放
- */
- int RecordingModel::RecordingPlayerPlay(void)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingModel::RecordingPlayerPlay");
- /* -------------------------------- 获取播放器状态 ------------------------------- */
- int32_t ret;
- int32_t state = GetRecordingPlayerState();
- if (state == OHOS_FAILURE)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Get state of player failed!!");
- return OHOS_FAILURE;
- }
- if (state == PlayerStates::PLAYER_PAUSED) // 暂停状态则直接开始
- {
- ret = PlayerCtr->Play();
- if (ret != 0)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Play err, ret:%d", ret);
- return OHOS_FAILURE;
- }
- SetRecordingPlayButtonState(true); // 播放控件图形同步
- return OHOS_SUCCESS;
- }
- else if (state == PlayerStates::PLAYER_STARTED) // 已经在播放状态则不做操作
- {
- return RECORDER_ALREADY_PLAYING;
- }
- else // 其它情况的处理
- {
- ret = RecordingPlayerStat();
- if (ret != OHOS_SUCCESS)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayerStat err, ret:%d", ret);
- return OHOS_FAILURE;
- }
- SetRecordingPlayButtonState(true); // 播放控件图形同步
- return OHOS_SUCCESS;
- }
- }
-
- /*
- * @brief 录音播放器暂停
- */
- int RecordingModel::RecordingPlayerPause(void)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingModel::RecordingPlayerPause");
- /* -------------------------------- 获取播放器状态 ------------------------------- */
- int32_t state = GetRecordingPlayerState();
- if (state == OHOS_FAILURE)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Get state of player failed!!");
- return OHOS_FAILURE;
- }
-
- if (state == PlayerStates::PLAYER_PAUSED) // 暂停状态则不操作
- {
- return RECORDER_ALREADY_PAUSED;
- }
- else if (state == PlayerStates::PLAYER_STOPPED) // 停止状态则不操作
- {
- return RECORDER_ALREADY_STOPPED;
- }
- else if (state == PlayerStates::PLAYER_PLAYBACK_COMPLETE)
- {
- return RECORDER_PLAYBACK_COMPLETED;
- }
- else if (state == PlayerStates::PLAYER_STARTED)
- {
- int ret = PlayerCtr->Pause();
- if (ret != 0)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Pause err, ret:%d!!", ret);
- return OHOS_FAILURE;
- }
- else
- {
- SetRecordingPlayButtonState(false);
- return OHOS_SUCCESS;
- }
- }
-
- return OHOS_SUCCESS;
- }
-
/*
* @brief 录音播放器停止
*/
return OHOS_SUCCESS;
}
- void RecordingModel::NextSong(int index)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, " RecordingModel::NextSong");
-
- std::string recordingFileName = fileNames[index];
- if (recordingFileName.c_str() == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "No Recording files!!");
- return;
- };
- SetRecordingPlayerUri(directory + recordingFileName + ".mp3");
- /* -------------------------------------------------------------------------- */
- int32_t playerState = GetRecordingPlayerState();
- if (playerState == OHOS_FAILURE)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Get playerState of player failed!!");
- return;
- }
- int ret;
- if ((playerState == PlayerStates::PLAYER_STARTED) || (playerState == PlayerStates::PLAYER_PLAYBACK_COMPLETE))
- {
- /* start play */
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "start play, 160.");
- ret = PlayerCtr->Stop(); // 停止
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Stop, ret:%d", ret);
- ret = PlayerCtr->Reset();
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Reset, ret:%d", ret);
- ret = RecordingPlayerStat(); // 播放
- if (ret != 0)
- {
- /* stop and exit */
- ret = PlayerCtr->Stop(); // 停止
- ret = PlayerCtr->Reset();
- }
- }
- else if (playerState == PlayerStates::PLAYER_PAUSED || (playerState == PlayerStates::PLAYER_IDLE) || PlayerStates::PLAYER_PAUSED)
- {
- ret = PlayerCtr->Reset();
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Reset, ret:%d", ret);
- }
- ret = RecordingPlayerStat();
- if (ret != OHOS_SUCCESS)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayerStat err, ret:%d", ret);
- return;
- }
- SetRecordingPlayButtonState(true); // 播放控件图形同步
- }
-
/*
* @brief 上一首录音播放
*/
KeepClickRecordingIndex(GetRecordingListNum() - 1);
}
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PreviousPlayout, index %d.", GetClickRecordingIndex());
- NextSong(GetClickRecordingIndex());
+ RecordingPlayerInit(GetClickRecordingIndex());
+ SetCircleProgress(0);
+ }
+
+ /*
+ * @brief 下一首录音播放
+ */
+ void RecordingModel::NextPlayout(void)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NextPlayout, index %d.", GetClickRecordingIndex());
+ if ((GetClickRecordingIndex() > GetRecordingListNum() - 1) || (GetClickRecordingIndex() < 0))
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "currentIndex err");
+ KeepClickRecordingIndex(0);
+ return;
+ }
+ GetClickRecordingIndex()++; // 下一曲
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NextPlayout, index %d.", GetClickRecordingIndex());
+ if (GetClickRecordingIndex() > GetRecordingListNum() - 1)
+ {
+ KeepClickRecordingIndex(0);
+ }
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NextPlayout, index %d.", GetClickRecordingIndex());
+ RecordingPlayerInit(GetClickRecordingIndex());
+ SetCircleProgress(0);
}
/*
return Recordings;
}
+ /*
+ * @brief 获取当前播放的录音文件名
+ */
+ std::string RecordingModel::GetCurrentPlayRecordingName(void)
+ {
+ return fileNames[GetClickRecordingIndex()];
+ }
+
/*
* @brief 获取录音数量
*/
return yyyymmhhh_date;
}
+ /*
+ * @brief 获取年月日时间和录音时长
+ */
+ std::string &RecordingModel::Getyyyymmhhh_dateAndTotalRecordDuration(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[RecordingModel] Getyyyymmhhh_dateAndTotalRecordDuration\n");
+ std::string yyyymmhhh_date = RecordingModel::GetInstance()->Getyyyymmhhh_date();
+ std::string TotalRecordDuration = RecordingModel::GetInstance()->GetTotalRecordDuration();
+ // 去掉日期字符串末尾的换行符
+ if (!yyyymmhhh_date.empty() && yyyymmhhh_date.back() == '\n')
+ {
+ yyyymmhhh_date.erase(yyyymmhhh_date.length() - 1);
+ }
+ RecordingTimeAndDuration = (yyyymmhhh_date + "-" + TotalRecordDuration);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingTimeAndDuration %s\n", RecordingTimeAndDuration.c_str());
+ return RecordingTimeAndDuration;
+ }
+
/* ----------------------------------- 定时器 ---------------------------------- */
/*
RecordingPlayPauseButton->SetViewId(RECORD_PLAY_PAUSE_CHECKBOX_VIEWID);\r
RecordingPlayPauseButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
RecordingPlayPauseButton->SetImages(PNG_UNIVERSAL_PAUSE_IMAGE, PNG_UNIVERSAL_PLAY_IMAGE);\r
- UICheckBox::OnChangeListener *changelister = static_cast<UICheckBox::OnChangeListener *>(RecordingPresenter::GetInstance());\r
- RecordingPlayPauseButton->SetOnChangeListener(changelister);\r
+ RecordingPlayPauseButton->SetOnClickListener(buttonClick);\r
\r
return true;\r
}\r
\r
/*\r
* @brief 获取录音文件名标签\r
- */\r
+ */\r
UILabelExt *RecordingPlayerView::GetRecordingFileNameLabel(void)\r
{\r
return RecordingFileName;\r
\r
/*\r
* @brief 获取录音时间和时长标签\r
- */\r
+ */\r
UILabelExt *RecordingPlayerView::GetRecordingTimeAndDurationLabel(void)\r
{\r
return RecordingTimeAndDuration;\r
RecordingPlayPauseButton->SetState(state);\r
}\r
\r
+ /*\r
+ * @brief 获取播放器状态\r
+ */\r
+ UICheckBox::UICheckBoxState RecordingPlayerView::GetPlayerButtonState(void)\r
+ {\r
+ return RecordingPlayPauseButton->GetState();\r
+ }\r
+\r
/*\r
* @brief 获取录音播放进度条\r
*/\r
return PlayerProgressBar;\r
}\r
\r
+ /*\r
+ * @brief 重置组件状态\r
+ */\r
+ void RecordingPlayerView::ResetComponentStatus(void)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[RecordingPlayerView] ResetComponentStatus");\r
+\r
+ if (GetPlayerProgressBar() != nullptr)\r
+ {\r
+ GetPlayerProgressBar()->SetValue(0); // 0:进度0%\r
+ GetPlayerProgressBar()->Invalidate();\r
+ }\r
+ if (GetRecordingFileNameLabel() != nullptr)\r
+ {\r
+ GetRecordingFileNameLabel()->SetText(RecordingModel::GetInstance()->GetCurrentPlayRecordingName().c_str());\r
+ GetRecordingFileNameLabel()->Invalidate();\r
+ }\r
+ if (GetRecordingTimeAndDurationLabel() != nullptr)\r
+ {\r
+ GetRecordingTimeAndDurationLabel()->SetText(RecordingModel::GetInstance()->Getyyyymmhhh_dateAndTotalRecordDuration().c_str());\r
+ GetRecordingTimeAndDurationLabel()->Invalidate();\r
+ }\r
+ if (GetPlayerButton() != nullptr)\r
+ {\r
+ SetPlayerButtonState(UICheckBox::UICheckBoxState::UNSELECTED);\r
+ }\r
+ }\r
+\r
UIScrollView *RecordingPlayerView::RecordingPlayerViewInit()\r
{\r
if (!SetUpScrollView())\r
\r
RecordingPresenter::~RecordingPresenter()\r
{\r
- p_RecordingModel->GetPlayerCtr()->Stop();\r
- p_RecordingModel->GetPlayerCtr()->Release();\r
- p_RecordingModel->SetAudioInitStatus(false);\r
- p_RecordingModel->GetPlayerCtr().reset();\r
g_pRecordPresenter = nullptr;\r
}\r
\r
void RecordingPresenter::OnStop(void)\r
{\r
Presenter<RecordingView>::OnStop();\r
+ if (p_RecordingModel->GetPlayerCtr() != nullptr)\r
+ {\r
+ p_RecordingModel->GetPlayerCtr()->Stop();\r
+ p_RecordingModel->GetPlayerCtr()->Reset();\r
+ p_RecordingModel->GetPlayerCtr()->Release();\r
+ p_RecordingModel->SetAudioInitStatus(false);\r
+ p_RecordingModel->GetPlayerCtr().reset();\r
+ }\r
ScreenAlwaysOnCtr(0);\r
}\r
\r
return true;\r
}\r
\r
- bool RecordingPresenter::OnChange(UICheckBox::UICheckBoxState state)\r
- {\r
- switch (state)\r
- {\r
- case UICheckBox::SELECTED:\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recording play start");\r
- p_RecordingModel->RecordingPlayerPlay();\r
- break;\r
- case UICheckBox::UNSELECTED:\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recording play stop");\r
- p_RecordingModel->RecordingPlayerPause();\r
- break;\r
- default:\r
- break;\r
- }\r
- return true;\r
- }\r
-\r
bool RecordingPresenter::OnKeyAct(UIView &view, const KeyEvent &event)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingPresenter::OnKeyAct");\r
}\r
p_RecordingModel->KeepClickRecordingIndex(index);\r
/* ------------------------ 录音播放初始化,包括录音文件名,录音时间和总时长 ------------------------ */\r
- if (p_RecordingModel->RecordingPlayerInit() != OHOS_SUCCESS)\r
+ if (p_RecordingModel->RecordingPlayerInit(index) != OHOS_SUCCESS)\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "p_RecordingModel->RecordingPlayerInit fail!!");\r
return false;\r
return true;\r
}\r
\r
+ /*\r
+ * @brief 播放按钮被点击\r
+ */\r
+ void RecordingPlayerViewOnClickListener::PlayerButtonOnClick(void)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingPlayerViewOnClickListener PlayerButtonOnClick");\r
+\r
+ RecordingPlayerView *p_RecordingPlayerView = RecordingPlayerView::GetInstance();\r
+ if (p_RecordingPlayerView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingPlayerView GetInstance fail");\r
+ return;\r
+ }\r
+\r
+ RecordingModel *p_RecordingModel = RecordingModel::GetInstance();\r
+ if (p_RecordingModel == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "p_RecordingModel GetInstance fail");\r
+ return;\r
+ }\r
+\r
+ int ret;\r
+ uint8_t state = UICheckBox::UICheckBoxState::MAX_STATUS_NUM;\r
+ int32_t playerState;\r
+\r
+ state = p_RecordingPlayerView->GetPlayerButtonState();\r
+ playerState = p_RecordingModel->GetRecordingPlayerState();\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "buttonState = %d playerState = %d", state, playerState);\r
+\r
+ if (state == UICheckBox::UICheckBoxState::SELECTED)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "state == SELECTED");\r
+\r
+ if (playerState == PlayerStates::PLAYER_PAUSED)\r
+ {\r
+ ret = p_RecordingModel->GetPlayerCtr()->Play();\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Play, ret:%d", ret);\r
+ }\r
+ else\r
+ {\r
+ ret = p_RecordingModel->RecordingPlayerStat(); // 本地播放\r
+ if (ret != 0)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayerStat err, ret:%d", ret);\r
+ }\r
+ }\r
+ }\r
+ else\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "state == UNSELECTED");\r
+ ret = p_RecordingModel->GetPlayerCtr()->Pause(); // 本地暂停\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Pause, ret:%d", ret);\r
+ }\r
+ }\r
+\r
bool RecordingPlayerViewOnClickListener::OnClick(UIView &view, const ClickEvent &event)\r
{\r
RecordingView *p_RecordingView = RecordingView::GetInstance();\r
return false;\r
}\r
\r
- if (strcmp(view.GetViewId(), RECORD_PLAY_PROVE_BUTTON_VIEWID) == 0)\r
+ if (strcmp(view.GetViewId(), RECORD_PLAY_PAUSE_CHECKBOX_VIEWID) == 0)\r
+ {\r
+ PlayerButtonOnClick();\r
+ }\r
+ else if (strcmp(view.GetViewId(), RECORD_PLAY_PROVE_BUTTON_VIEWID) == 0)\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recording player prove button being clicked!");\r
\r
- // if (p_RecordingPlayerView->GetPlayerProgressBar() != nullptr)\r
- // {\r
- // p_RecordingPlayerView->GetPlayerProgressBar()->SetValue(0); // 0:进度0%\r
- // p_RecordingPlayerView->SetPlayerButtonState(UICheckBox::UICheckBoxState::SELECTED);\r
- // p_RecordingPlayerView->GetPlayerProgressBar()->Invalidate();\r
- // }\r
- // p_RecordingModel->PreviousPlayout();\r
+ p_RecordingModel->PreviousPlayout();\r
+\r
+ p_RecordingPlayerView->ResetComponentStatus();\r
}\r
else if (strcmp(view.GetViewId(), RECORD_PLAY_NEXT_BUTTON_VIEWID) == 0)\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recording player next button being clicked!");\r
- // if (p_RecordingPlayerView->GetPlayerProgressBar() != nullptr)\r
- // {\r
- // p_RecordingPlayerView->GetPlayerProgressBar()->SetValue(0); // 0:进度0%\r
- // p_RecordingPlayerView->SetPlayerButtonState(UICheckBox::UICheckBoxState::SELECTED);\r
- // p_RecordingPlayerView->GetPlayerProgressBar()->Invalidate();\r
- // }\r
- // p_RecordingModel->NextSong(p_RecordingModel->GetClickRecordingIndex() + 1);\r
+\r
+ p_RecordingModel->NextPlayout();\r
+\r
+ p_RecordingPlayerView->ResetComponentStatus();\r
}\r
else if (strcmp(view.GetViewId(), RECORD_PLAY_DELETE_BUTTON_VIEWID) == 0)\r
{\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingPlayerCallbackImpl::OnPlaybackComplete");\r
/* --------------------------- 处实现代码用于处理文件播放完成的事件 --------------------------- */\r
+ /* ----------------------- 用户在回调函数中不能有阻塞操作,也不能调用播放器接口 ----------------------- */\r
// 此处实现代码用于处理文件播放完成的事件\r
RecordingPlayerView *p_RecordingPlayerView = RecordingPlayerView::GetInstance();\r
if (p_RecordingPlayerView != nullptr)\r
delete RECORD1_Image;\r
RECORD1_Image = nullptr;\r
\r
- delete p_RecordListView;\r
- p_RecordListView = nullptr;\r
-\r
- delete p_RecordGoingView;\r
- p_RecordGoingView = nullptr;\r
-\r
- delete p_RecordingPlayerView;\r
- p_RecordingPlayerView = nullptr;\r
+ if (p_RecordListView != nullptr)\r
+ {\r
+ delete p_RecordListView;\r
+ p_RecordListView = nullptr;\r
+ }\r
+ if (p_RecordGoingView != nullptr)\r
+ {\r
+ delete p_RecordGoingView;\r
+ p_RecordGoingView = nullptr;\r
+ }\r
+ if (p_RecordingPlayerView != nullptr)\r
+ {\r
+ delete p_RecordingPlayerView;\r
+ p_RecordingPlayerView = nullptr;\r
+ }\r
\r
- delete p_RecordDeleteView;\r
- p_RecordDeleteView = nullptr;\r
+ if (p_RecordDeleteView != nullptr)\r
+ {\r
+ delete p_RecordDeleteView;\r
+ p_RecordDeleteView = nullptr;\r
+ }\r
\r
delete RecordingViewScrollView[RECORDINGVIEW];\r
RecordingViewScrollView[RECORDINGVIEW] = nullptr;\r
RootView::GetInstance()->Add(RecordingViewScrollView[thisView]);\r
}\r
// 设置“录音播放器”【录音文件名标签】的"文本内容"为被点击的"录音"的录音名\r
- p_RecordingPlayerView->GetRecordingFileNameLabel()->SetText(RecordingModel::GetInstance()->GetFileNames()[RecordingModel::GetInstance()->GetClickRecordingIndex()].c_str());\r
- std::string yyyymmhhh_date = RecordingModel::GetInstance()->Getyyyymmhhh_date();\r
- std::string TotalRecordDuration = RecordingModel::GetInstance()->GetTotalRecordDuration();\r
- // 去掉日期字符串末尾的换行符\r
- if (!yyyymmhhh_date.empty() && yyyymmhhh_date.back() == '\n')\r
- {\r
- yyyymmhhh_date.erase(yyyymmhhh_date.length() - 1);\r
- }\r
- std::string RecordingTimeAndDuration = yyyymmhhh_date + "-" + TotalRecordDuration;\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingTimeAndDuration %s\n", RecordingTimeAndDuration.c_str());\r
- p_RecordingPlayerView->GetRecordingTimeAndDurationLabel()->SetText(RecordingTimeAndDuration.c_str());\r
- p_RecordingPlayerView->SetPlayerButtonState(UICheckBox::UICheckBoxState::UNSELECTED);\r
+ p_RecordingPlayerView->ResetComponentStatus();\r
return true;\r
}\r
\r