int RecordingPlayerStat(void);
int GetRecordingPlayerState(void);
int RecordingPlayerStop(void);
+ int RecordingPlayerReset(void);
void PreviousPlayout(void);
void NextPlayout(void);
void ClearRecordingPlayer(void);
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-08-05 15:20:03\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-08-27 19:38:39\r
+ * @LastEditTime: 2024-09-06 10:20:35\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingPlayerView.h\r
*/\r
#ifndef RECORD_PLAY_VIEW_H\r
#include "components/ui_circle_progress.h"\r
#include "components/ui_checkbox.h"\r
#include "components/ui_label_ext.h"\r
-#include"ui_resource_string.h"\r
+#include "ui_resource_string.h"\r
#include "components/ui_button.h"\r
#define APP_RES_PATH "/user/res"\r
namespace OHOS\r
{\r
- \r
\r
- static constexpr const char *PNG_UNIVERSAL_PAUSE_IMAGE = APP_RES_PATH "/record/UNIVERSAL_PAUSE.bin"; // 暂停\r
- static constexpr const char *PNG_UNIVERSAL_PLAY_IMAGE = APP_RES_PATH "/record/UNIVERSAL_PLAY.bin"; // 播放\r
- static constexpr const char *PNG_RECORD_PLAY_BACKGROUND_IMAGE = APP_RES_PATH "/record/RECORD_PLAY_BACKGROUND.bin"; // 背景\r
- static constexpr const char *PNG_RECORD_PLAY_PROVE_IMAGE = APP_RES_PATH "/record/RECORD_PLAY_PROVE.bin"; // 上一首\r
- static constexpr const char *PNG_RECORD_PLAY_NEXT_IMAGE = APP_RES_PATH "/record/RECORD_PLAY_NEXT.bin"; // 下一首\r
- static constexpr const char *PNG_RECORD_PLAY_DELETE_IMAGE = APP_RES_PATH "/record/RECORD_PLAY_DELETE.bin"; // 删除\r
- static constexpr const char *PNG_RECORD_PLAY_VOLUME_IMAGE = APP_RES_PATH "/record/RECORD_PLAY_VOLUME.bin"; // 音量\r
+ static constexpr const char *PNG_UNIVERSAL_PAUSE_IMAGE = APP_RES_PATH "/record/UNIVERSAL_PAUSE.bin"; // 暂停\r
+ static constexpr const char *PNG_UNIVERSAL_PLAY_IMAGE = APP_RES_PATH "/record/UNIVERSAL_PLAY.bin"; // 播放\r
+ static constexpr const char *PNG_RECORD_PLAY_BACKGROUND_IMAGE = APP_RES_PATH "/record/RECORD_PLAY_BACKGROUND.bin"; // 背景\r
+ static constexpr const char *PNG_RECORD_PLAY_PROGRESS_BG_IMAGE = APP_RES_PATH "/record/RECORD_PROGRESS_BG.bin"; // 进度条背景\r
+ static constexpr const char *PNG_RECORD_PLAY_PROVE_IMAGE = APP_RES_PATH "/record/RECORD_PLAY_PROVE.bin"; // 上一首\r
+ static constexpr const char *PNG_RECORD_PLAY_NEXT_IMAGE = APP_RES_PATH "/record/RECORD_PLAY_NEXT.bin"; // 下一首\r
+ static constexpr const char *PNG_RECORD_PLAY_DELETE_IMAGE = APP_RES_PATH "/record/RECORD_PLAY_DELETE.bin"; // 删除\r
+ static constexpr const char *PNG_RECORD_PLAY_VOLUME_IMAGE = APP_RES_PATH "/record/RECORD_PLAY_VOLUME.bin"; // 音量\r
class RecordingPlayerView\r
{\r
\r
static RecordingPlayerView *GetInstance(void);\r
UIScrollView *RecordingPlayerViewInit(void);\r
void ClearAll(void);\r
- UILabelExt * GetRecordingFileNameLabel(void);\r
+ UILabelExt *GetRecordingFileNameLabel(void);\r
UILabelExt *GetRecordingTimeAndDurationLabel(void);\r
- UICheckBox * GetPlayerButton(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
+ UICircleProgress *GetPlayerProgressBar(void);\r
void SetPlayerProgressBarValue(int value);\r
+\r
private:\r
UILabelExt *SetUpLabel(LabelConfig &labelconfig); // 设置标签\r
UIButton *SetTheButton(ButtonConfig &buttonconfig, UIView::OnClickListener *clickListener);\r
bool SetUpScrollView(void);\r
bool SetUpRecordingPlayerViewLabel(void);\r
bool SetUpBackGround(void);\r
+ bool SetUpPlayerProgressBarBackGroud();\r
bool SetUpPlayerProgressBar(void);\r
bool SetUpPlayPauseButton(void);\r
bool SetUpProveButton(void);\r
bool SetUpDeleteButton(void);\r
bool SetUpVolumeButton(void);\r
UIScrollView *RecordingPlayerViewScrollView{nullptr};\r
- UIImageView *RecordingPlayBackground{nullptr}; // 录音播放视图背景图片\r
- UILabelExt *RecordingFileName{nullptr}; // 录音文件名\r
- UILabelExt *RecordingTimeAndDuration{nullptr}; // 录音时间和时长\r
- UICircleProgress *PlayerProgressBar{nullptr}; // 录音播放进度条\r
- UICheckBox *RecordingPlayPauseButton{nullptr}; // 录音播放或暂停按钮\r
- UIButton *RecordingPlayProveButton{nullptr}; // 上一首按钮\r
- UIButton *RecordingPlayNextButton{nullptr}; // 下一首按钮\r
- UIButton *RecordingPlayDeleteButton{nullptr}; // 删除按钮\r
- UIButton *RecordingPlayVolumeButton{nullptr}; // 音量按钮\r
+ UIImageView *RecordingPlayBackground{nullptr}; // 录音播放视图背景图片\r
+ UILabelExt *RecordingFileName{nullptr}; // 录音文件名\r
+ UILabelExt *RecordingTimeAndDuration{nullptr}; // 录音时间和时长\r
+ UIImageView *PlayerProgressBarBackGround{nullptr}; // 录音播放进度条背景\r
+ UICircleProgress *PlayerProgressBar{nullptr}; // 录音播放进度条\r
+ UICheckBox *RecordingPlayPauseButton{nullptr}; // 录音播放或暂停按钮\r
+ UIButton *RecordingPlayProveButton{nullptr}; // 上一首按钮\r
+ UIButton *RecordingPlayNextButton{nullptr}; // 下一首按钮\r
+ UIButton *RecordingPlayDeleteButton{nullptr}; // 删除按钮\r
+ UIButton *RecordingPlayVolumeButton{nullptr}; // 音量按钮\r
UIView::OnClickListener *buttonClick{nullptr};\r
bool initViewStatus{false};\r
};\r
return OHOS_FAILURE;
}
SetRecordingPlayerUri(directory + GetCurrentPlayRecordingName() + ".mp3");
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uri: %s.", GetRecordingPlayerUri().c_str());
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uri: %s,line = %d", GetRecordingPlayerUri().c_str(), __LINE__);
state = p_RecordingPlayerView->GetPlayerButtonState();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "state %d", state);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "state %d,line = ", state, __LINE__);
if (state == UICheckBox::UICheckBoxState::UNSELECTED)
{
p_RecordingPlayerView->SetPlayerButtonState(UICheckBox::UICheckBoxState::SELECTED);
// 录音播放
int RecordingModel::RecordingPlayerStat()
{
+ /* ------------------------------ 每次新的播放进度都设为0 ------------------------------ */
+ SetCircleProgress(0); // 0:进度100%
+ RecordingPlayerView *p_RecordingPlayerView = RecordingPlayerView::GetInstance();
+ if(p_RecordingPlayerView !=nullptr)
+ {
+ p_RecordingPlayerView->SetPlayerProgressBarValue(CircleProgress);
+ }
+ /* -------------------------------------------------------------------------- */
int32_t ret;
// 设置回调函数
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "session invalid");
return OHOS_FAILURE;
}
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MakeSessionId %d", SessionId);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MakeSessionId %d", SessionId);
p_RecordingPlayerInterruptListener = std::make_shared<RecordingPlayerInterruptListener>();
if (p_RecordingPlayerInterruptListener.get() == nullptr)
{
{
PlayerCtr->Stop(); // 暂停
PlayerCtr->Reset(); // 初始化
- RecordingPlayerView *p_RecordingPlayerView = RecordingPlayerView::GetInstance();
+ // RecordingPlayerView *p_RecordingPlayerView = RecordingPlayerView::GetInstance();
if (p_RecordingPlayerView != nullptr)
{
p_RecordingPlayerView->SetPlayerButtonState(UICheckBox::UNSELECTED);
- SetCircleProgress(100); // 100:进度100%
+ SetCircleProgress(0); // 0:进度0%
p_RecordingPlayerView->SetPlayerProgressBarValue(CircleProgress);
}
else
{
SetRecordingPlayButtonState(false);
- SetCircleProgress(100); // 100:进度100%
+ SetCircleProgress(0); // 0:进度0%
}
AudioManager::GetInstance().DeactivateAudioInterrupt(interrupt);
IsActivateAudioInterrupt = false;
return OHOS_SUCCESS;
}
+ int RecordingModel::RecordingPlayerReset(void)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingModel::RecordingPlayerReset");
+ int ret = PlayerCtr->Stop();
+ if (ret != 0)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Stop err, ret:%d", ret);
+ return OHOS_FAILURE;
+ }
+ ret = PlayerCtr->Reset();
+ if (ret != 0)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Reset err, ret:%d", ret);
+ return OHOS_FAILURE;
+ }
+ return OHOS_SUCCESS;
+ }
+
/*
* @brief 上一首录音播放
*/
return;
}
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NextPlayout before index %d,%s", GetClickRecordingIndex(), GetCurrentPlayRecordingName().c_str());
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NextPlayout before index %d,filename %s", GetClickRecordingIndex(), GetCurrentPlayRecordingName().c_str());
if ((index > num - 1) || (index < 0))
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "currentIndex err");
return;
}
SetClickRecordingIndex(--index < 0 ? num - 1 : index); // 如果从第一首录音设置上一首,那就跳到最后一首
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NextPlayout after index %d,%s", GetClickRecordingIndex(), GetCurrentPlayRecordingName().c_str());
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NextPlayout after index %d,filename %s", GetClickRecordingIndex(), GetCurrentPlayRecordingName().c_str());
SetRecordingPlayerUri(directory + GetCurrentPlayRecordingName() + ".mp3");
SetCircleProgress(0);
int32_t ret;
return;
}
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NextPlayout before index %d,%s", GetClickRecordingIndex(), GetCurrentPlayRecordingName().c_str());
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NextPlayout before index %d,filename %s", GetClickRecordingIndex(), GetCurrentPlayRecordingName().c_str());
if ((index > num - 1) || (index < 0))
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "currentIndex err");
return;
}
SetClickRecordingIndex(++index > num - 1 ? 0 : index); // 如果从最后一首录音设置下一首,那就跳到第一首
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NextPlayout after index %d,%s", GetClickRecordingIndex(), GetCurrentPlayRecordingName().c_str());
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NextPlayout after index %d,filename %s", GetClickRecordingIndex(), GetCurrentPlayRecordingName().c_str());
SetRecordingPlayerUri(directory + GetCurrentPlayRecordingName() + ".mp3");
SetCircleProgress(0);
int32_t ret;
delete RecordingTimeAndDuration;\r
RecordingTimeAndDuration = nullptr;\r
\r
+ delete PlayerProgressBarBackGround;\r
+ PlayerProgressBarBackGround = nullptr;\r
+\r
delete PlayerProgressBar;\r
PlayerProgressBar = nullptr;\r
\r
return true;\r
}\r
\r
+ // 播放进度条背景设置\r
+ bool RecordingPlayerView::SetUpPlayerProgressBarBackGroud()\r
+ {\r
+ PlayerProgressBarBackGround = new UIImageView();\r
+ if (PlayerProgressBarBackGround == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingPlayerView::PlayerProgressBarBackGround is new fail!");\r
+ return false;\r
+ }\r
+ PlayerProgressBarBackGround->SetPosition(173, 173, 120, 120);\r
+ PlayerProgressBarBackGround->SetSrc(PNG_RECORD_PLAY_PROGRESS_BG_IMAGE);\r
+ PlayerProgressBarBackGround->SetStyle(STYLE_BORDER_RADIUS, 200);\r
+ return true;\r
+ }\r
+\r
/*\r
* @brief 播放进度条设置\r
*/\r
}\r
PlayerProgressBar->SetPosition(168, 168, 130, 130);\r
PlayerProgressBar->SetViewId(RECORD_PLAY_PLAYERPROGRESSBAR);\r
- PlayerProgressBar->SetStyle(STYLE_BACKGROUND_OPA, 0x2b);\r
+ PlayerProgressBar->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
PlayerProgressBar->SetStyle(STYLE_BORDER_RADIUS, 100);\r
PlayerProgressBar->SetForegroundStyle(STYLE_BORDER_COLOR, 0xff000000);\r
PlayerProgressBar->SetForegroundStyle(STYLE_LINE_COLOR, 0xffffffff);\r
PlayerProgressBar->SetForegroundStyle(STYLE_LINE_WIDTH, 6);\r
+ PlayerProgressBar->SetBackgroundStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
+ PlayerProgressBar->SetBackgroundStyle(STYLE_LINE_OPA, 0x00);\r
+ PlayerProgressBar->SetBackgroundStyle(STYLE_LINE_WIDTH, 0);\r
+ // PlayerProgressBar->SetCapType(CAP_ROUND);\r
PlayerProgressBar->SetCenterPosition(65, 65);\r
PlayerProgressBar->SetRadius(65);\r
+ PlayerProgressBar->SetStartAngle(0);\r
PlayerProgressBar->SetEndAngle(360);\r
PlayerProgressBar->SetValue(0);\r
\r
if (PlayerProgressBar != nullptr)\r
{\r
PlayerProgressBar->SetValue(0); // 0:进度0%\r
- PlayerProgressBar->Invalidate();\r
}\r
if (RecordingFileName != nullptr)\r
{\r
std::string name = p_RecordingModel->GetCurrentPlayRecordingName();\r
RecordingFileName->SetText(p_RecordingModel->GetCurrentPlayRecordingName(name).c_str());\r
- RecordingFileName->Invalidate();\r
}\r
if (RecordingTimeAndDuration != nullptr)\r
{\r
RecordingTimeAndDuration->SetText(RecordingModel::GetInstance()->Getyyyymmhhh_dateAndTotalRecordDuration().c_str());\r
- RecordingTimeAndDuration->Invalidate();\r
- }\r
- if (GetPlayerButton() != nullptr)\r
- {\r
- RecordingModel *p_RecordingModel = RecordingModel::GetInstance();\r
- int32_t playerState = p_RecordingModel->GetRecordingPlayerState();\r
- if (playerState != PlayerStates::PLAYER_STARTED)\r
- {\r
- SetPlayerButtonState(UICheckBox::UICheckBoxState::UNSELECTED);\r
- }\r
}\r
+ RecordingPlayerViewScrollView->Invalidate();\r
+ // if (GetPlayerButton() != nullptr)\r
+ // {\r
+ // RecordingModel *p_RecordingModel = RecordingModel::GetInstance();\r
+ // int32_t playerState = p_RecordingModel->GetRecordingPlayerState();\r
+ // if (playerState != PlayerStates::PLAYER_STARTED)\r
+ // {\r
+ // SetPlayerButtonState(UICheckBox::UICheckBoxState::UNSELECTED);\r
+ // }\r
+ // }\r
}\r
\r
UIScrollView *RecordingPlayerView::RecordingPlayerViewInit()\r
{\r
- if (!SetUpScrollView())\r
- {\r
- return nullptr;\r
- }\r
-\r
- if (!SetUpRecordingPlayerViewLabel())\r
- {\r
- return nullptr;\r
- }\r
-\r
- if (!SetUpBackGround())\r
- {\r
- return nullptr;\r
- }\r
-\r
- if (!SetUpPlayerProgressBar())\r
- {\r
- return nullptr;\r
- }\r
-\r
buttonClick = static_cast<UIView::OnClickListener *>(new RecordingPlayerViewOnClickListener());\r
-\r
- if (!SetUpPlayPauseButton())\r
- {\r
- return nullptr;\r
- }\r
-\r
- if (!SetUpProveButton())\r
- {\r
- return nullptr;\r
- }\r
-\r
- if (!SetUpNextButton())\r
- {\r
- return nullptr;\r
- }\r
-\r
- if (!SetUpDeleteButton())\r
- {\r
- return nullptr;\r
- }\r
-\r
- if (!SetUpVolumeButton())\r
+ if (!SetUpScrollView() || !SetUpRecordingPlayerViewLabel() || !SetUpBackGround() || !SetUpPlayerProgressBarBackGroud() || !SetUpPlayerProgressBar() ||\r
+ !SetUpPlayPauseButton() || !SetUpProveButton() || !SetUpNextButton() || !SetUpDeleteButton() || !SetUpVolumeButton())\r
{\r
return nullptr;\r
}\r
RecordingPlayerViewScrollView->Add(RecordingPlayBackground);\r
RecordingPlayerViewScrollView->Add(RecordingFileName);\r
RecordingPlayerViewScrollView->Add(RecordingTimeAndDuration);\r
+ RecordingPlayerViewScrollView->Add(PlayerProgressBarBackGround);\r
RecordingPlayerViewScrollView->Add(PlayerProgressBar);\r
RecordingPlayerViewScrollView->Add(RecordingPlayPauseButton);\r
RecordingPlayerViewScrollView->Add(RecordingPlayProveButton);\r
RecordingPlayerViewScrollView->Add(RecordingPlayNextButton);\r
RecordingPlayerViewScrollView->Add(RecordingPlayDeleteButton);\r
RecordingPlayerViewScrollView->Add(RecordingPlayVolumeButton);\r
+ /* -------------------------------------------------------------------------- */\r
+ ResetComponentStatus(); // 设置“录音播放器”【录音文件名标签】的"文本内容"为被点击的"录音"的录音名\r
+ /* -------------------------------------------------------------------------- */\r
\r
initViewStatus = true;\r
return RecordingPlayerViewScrollView;\r
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-03-30 09:14:38\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-09-02 09:47:40\r
+ * @LastEditTime: 2024-09-06 11:51:33\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPresenter.cpp\r
*/\r
\r
\r
void RecordingPlayerViewOnClickListener::PlayerButtonOnClick(void)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingPlayerViewOnClickListener PlayerButtonOnClick");\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingPlayerViewOnClickListener PlayerButtonOnClick,%d",__LINE__);\r
\r
RecordingPlayerView *p_RecordingPlayerView = RecordingPlayerView::GetInstance();\r
if (p_RecordingPlayerView == nullptr)\r
p_RecordingPlayerView->GetPlayerProgressBar()->Invalidate();\r
}\r
}\r
- // GraphicService::GetInstance()->PostGraphicEvent(\r
- // std::bind(&OHOS::RecordingModel::ClearActivateAudioInterrupt, OHOS::RecordingModel::GetInstance()));\r
+ usleep(20000);\r
+ GraphicService::GetInstance()->PostGraphicEvent(\r
+ std::bind(&OHOS::RecordingModel::RecordingPlayerReset, OHOS::RecordingModel::GetInstance()));\r
}\r
\r
void RecordingPlayerCallbackImpl::OnError(int32_t errorType, int32_t errorCode)\r
RecordingViewScrollView[thisView] = p_RecordingPlayerView->RecordingPlayerViewInit();\r
container_->Add(RecordingViewScrollView[thisView]);\r
}\r
- // 设置“录音播放器”【录音文件名标签】的"文本内容"为被点击的"录音"的录音名\r
- p_RecordingPlayerView->ResetComponentStatus();\r
return true;\r
}\r
\r
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:afd1d9278cff32b41c3087f6ea4e253c7a8ccf306c38b3b6d209273849d2153a
+size 9624