实现开关机录音保存显示录音时间
authorluozheng <1732036298@qq.com>
Tue, 27 Aug 2024 09:59:45 +0000 (17:59 +0800)
committerluozheng <1732036298@qq.com>
Tue, 27 Aug 2024 09:59:45 +0000 (17:59 +0800)
code/sdk/application/wearable/fd230app/nativeui/record/include/RecordDeleteView.h
code/sdk/application/wearable/fd230app/nativeui/record/include/RecordListView.h
code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingModel.h
code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingPresenter.h
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordDeleteView.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordListView.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingModel.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/fd230app/nativeui/record/src/RecordingView.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingVolumeSettingView.cpp

index 36e4343..08b37e7 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-06-13 10:44:21\r
+ * @LastEditTime: 2024-08-26 09:44:39\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordDeleteView.h\r
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
  */\r
@@ -40,13 +40,14 @@ namespace OHOS
         virtual ~RecordDeleteView();\r
         static RecordDeleteView *GetInstance(void);\r
         UIScrollView *RecordDeleteViewInit(void);\r
-        void ClearAll(void);\r
+        void SetRecordDeleteName(const char * name);\r
 \r
     private:\r
         UILabelExt *CreateRecordDeleteLabel(LabelConfig &labelconfig); // 设置标签\r
         bool RecordDeleteScrollViewInit(void);\r
         bool RecordDeleteLabelViewInit(void);\r
         bool RecordDeleteButtonViewInit(void);\r
+        void ClearAll(void);\r
 \r
         UIScrollView *RecordDeleteViewScrollView{nullptr};\r
         UILabelExt *TitleLabel{nullptr};\r
index 9314a66..5fec252 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-08-24 17:24:22\r
+ * @LastEditTime: 2024-08-26 16:10:38\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordListView.h\r
  */\r
 #ifndef RECORD_LIST_VIEW_H\r
@@ -21,7 +21,7 @@
 #include "record/include/RecordingListAdapter.h"\r
 namespace OHOS\r
 {\r
-    static constexpr char *RECORDLISTSCROLLVIEW = "RecordListScrollView";\r
+    static constexpr const char *RECORDLISTSCROLLVIEW = "RecordListScrollView";\r
     class RecordListView\r
     {\r
 \r
index 4034edb..4a33ff1 100644 (file)
@@ -38,6 +38,14 @@ namespace OHOS
         RECORDER_RESPONSE_MAX,
     };
 
+#define MAX_RECORDING_NUM 20
+    typedef struct
+    {
+        char recordingFileName[32]; // 录音文件名
+        char recordingDuration[16]; // 录音时长
+        char recordingTime[16];     // 录音时间
+    } RecordingInfo;
+
     class RecordingPlayerInterruptListener;
     class RecordingModel
     {
@@ -63,25 +71,34 @@ namespace OHOS
         void InitRecordingListItem();
         std::vector<RecordingListItem> &GetRecordinglistItems();
         std::string GetCurrentPlayRecordingName(void);
-        int &GetRecordingListNum();
+        int GetRecordingListNum();
+        void SetRecordingListNum(int value);
         std::string GetCleanFileName(const std::string &filePath);
         void SearchFiles(const std::string &directory, std::vector<std::string> &fileNames, int &mp3FileCount);
-        void KeepClickRecordingIndex(int index_);
-        int &GetClickRecordingIndex(void);
+        void SetClickRecordingIndex(int index_);
+        int GetClickRecordingIndex(void);
         std::vector<std::string> &GetFileNames(void);
-        void KeepTotalRecordDuration(std::string time);
+        void SetTotalRecordDuration(std::string time);
         std::string GetTotalRecordDuration(void) const;
-        std::string Getyyyymmhhh_date(void) const;
+        RecordingInfo *GetRecordingInfo();
+        void SetRecordingInfo(RecordingInfo &info, int index);
+        void UpdateRecordingInfo(int index);
+        void SetRecordFileName(std::string name);
+        std::string GetRecordFileName(void);
+        std::string Getyyyymmhhh_date(void);
         std::string &Getyyyymmhhh_dateAndTotalRecordDuration(void);
         std::shared_ptr<RecordingPlayerInterruptListener> GetRecordingPlayerIntrptListener(void);
         void ClearActivateAudioInterrupt(void);
         std::shared_ptr<Player> GetPlayerCtr(void);
         void SetAudioInitStatus(bool value);
         /* ----------------------------------- 定时器 ---------------------------------- */
-        void Recording_StartTimer(uint32_t interval);
+        void Recording_StartTimer(uint32_t interval = 1000);
         void Recording_StopTimer(void);
         char *DisplayRecordDuration(void);
         const char *GetRecordDirectory() const;
+        static std::string recordTempDuration; // 录音时长
+        int RecordDataWriteToFile();
+        int RecordDataReadToFile();
 
     private:
         RecordingModel();
@@ -105,15 +122,20 @@ namespace OHOS
         bool isStopAndReset{false};                // 判断是否是停止还是重置状态
         bool audioInitStatus{false};
         /* -------------------------------------------------------------------------- */
-        std::vector<std::string> fileNames;                        // 文件名
+        std::vector<std::string> fileNames;                        // 文件名数组
         int RecordingMp3FileCount = 0;                             // 录音MP3数量
         const std::string directory = "/user/userdata/recording/"; // 录音目录
-        std::vector<RecordingListItem> Recordings;                 // 存放录音信息的动态数组
+        const std::string recordInfoFile = "/user/userdata/recording/recordinfo.bin";
+        std::vector<RecordingListItem> Recordings{0};              // 存放录音信息的动态数组
         std::string recordDuration;                                // 录音时长
-        int index;                                                 // 保存被点击录音的下标
-        char *yyyymmhhh_date;                                      // 保存年月日时间
-        std::string TotalRecordDuration;                           // 保存录音的总时长
-        std::string RecordingTimeAndDuration;                      // 录音日期和录音时长
+        /* -------------------------------------------------------------------------- */
+        int index;                            // 保存被点击录音的下标
+        std::string recordFileName;           // 录音文件名
+        char *yyyymmhhh_date;                 // 保存年月日时间
+        std::string TotalRecordDuration;      // 保存录音的总时长
+        std::string RecordingTimeAndDuration; // 录音日期和录音时长
+        RecordingInfo recordingInfo[MAX_RECORDING_NUM] = {0};
+        /* -------------------------------------------------------------------------- */
     };
 }
 
index 67437aa..6d20f52 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-02-27 09:16:51\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-06-13 11:23:15\r
+ * @LastEditTime: 2024-08-26 15:23:43\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/include/RecordingPresenter.h\r
  */\r
 \r
@@ -128,7 +128,6 @@ namespace OHOS
 \r
         static RecordingPresenter *GetInstance();\r
         int convertNumericDateTime(const char *numericDateTime, char *formattedDateTime);\r
-        void deleteFile(const char *filepath);\r
 \r
     private:\r
         // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
@@ -136,6 +135,8 @@ namespace OHOS
         bool OnDrag(UIView &view, const DragEvent &event) override;\r
         bool OnDragEnd(UIView &view, const DragEvent &event) override;\r
         bool OnKeyAct(UIView &view, const KeyEvent &event) override;\r
+        void StartRecord(void);\r
+        void StopRecord(void);\r
         RecordingModel *p_RecordingModel{nullptr};\r
     };\r
 }\r
index 92733ba..8f6ae54 100644 (file)
@@ -30,24 +30,36 @@ namespace OHOS
         {\r
             WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::ClearAll");\r
             RecordDeleteViewScrollView->RemoveAll();\r
-\r
-            delete TitleLabel;\r
-            TitleLabel = nullptr;\r
-\r
-            delete AttentionLabel;\r
-            AttentionLabel = nullptr;\r
-\r
-            delete DeleteNameLabel;\r
-            DeleteNameLabel = nullptr;\r
-\r
-            delete RECORD_DELETE_ON_BUTTON;\r
-            RECORD_DELETE_ON_BUTTON = nullptr;\r
-\r
-            delete RECORD_DELETE_OFF_BUTTON;\r
-            RECORD_DELETE_OFF_BUTTON = nullptr;\r
-\r
-            delete RecordDeleteViewScrollView;\r
-            RecordDeleteViewScrollView = nullptr;\r
+            if (TitleLabel)\r
+            {\r
+                delete TitleLabel;\r
+                TitleLabel = nullptr;\r
+            }\r
+            if (AttentionLabel)\r
+            {\r
+                delete AttentionLabel;\r
+                AttentionLabel = nullptr;\r
+            }\r
+            if (DeleteNameLabel)\r
+            {\r
+                delete DeleteNameLabel;\r
+                DeleteNameLabel = nullptr;\r
+            }\r
+            if (RECORD_DELETE_ON_BUTTON)\r
+            {\r
+                delete RECORD_DELETE_ON_BUTTON;\r
+                RECORD_DELETE_ON_BUTTON = nullptr;\r
+            }\r
+            if (RECORD_DELETE_OFF_BUTTON)\r
+            {\r
+                delete RECORD_DELETE_OFF_BUTTON;\r
+                RECORD_DELETE_OFF_BUTTON = nullptr;\r
+            }\r
+            if (RecordDeleteViewScrollView)\r
+            {\r
+                delete RecordDeleteViewScrollView;\r
+                RecordDeleteViewScrollView = nullptr;\r
+            }\r
         }\r
     }\r
 \r
@@ -66,6 +78,7 @@ namespace OHOS
         label->SetLineBreakMode(labelconfig.lineBreakMode); // 断行模式。\r
         label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
         label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);\r
+        label->SetRollSpeed(70);\r
 \r
         return label;\r
     }\r
@@ -134,15 +147,24 @@ namespace OHOS
         AttentionLabel->SetTextColor(Color::GetColorFromRGBA(0xff, 0x5a, 0x36, 0xff));\r
         RecordDeleteViewScrollView->Add(AttentionLabel);\r
         /* -------------------------------------------------------------------------- */\r
-        labelconfig.top = 215;\r
-        labelconfig.textId = STR_AUDIO_XX;\r
-        DeleteNameLabel = CreateRecordDeleteLabel(labelconfig);\r
-        if (nullptr == DeleteNameLabel)\r
+        if (DeleteNameLabel == nullptr)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::DeleteNameLabel is nullptr!");\r
-            return false;\r
+            DeleteNameLabel = new UILabelExt();\r
+            if (DeleteNameLabel == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordDeleteView::DeleteNameLabel is nullptr!");\r
+                return false;\r
+            }\r
         }\r
+        DeleteNameLabel->SetPosition(0, 0, 360, 35);                        // 位置大小\r
+        DeleteNameLabel->SetStyle(STYLE_TEXT_FONT, 30);                     // 字体大小\r
+        DeleteNameLabel->SetStyle(STYLE_LINE_HEIGHT, 35);                   // 字体行高\r
+        DeleteNameLabel->SetText("");                                       // 内容\r
+        DeleteNameLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION); // 断行模式。\r
+        DeleteNameLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        DeleteNameLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
         RecordDeleteViewScrollView->Add(DeleteNameLabel);\r
+        DeleteNameLabel->LayoutCenterOfParent(); // 与父视图中心对齐\r
 \r
         return true;\r
     }\r
@@ -198,4 +220,13 @@ namespace OHOS
         return RecordDeleteViewScrollView;\r
     }\r
 \r
+    void RecordDeleteView::SetRecordDeleteName(const char *name)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordDeleteViewInit::SetRecordDeleteName");\r
+        if (DeleteNameLabel)\r
+        {\r
+            DeleteNameLabel->SetText(name);\r
+            DeleteNameLabel->Invalidate();\r
+        }\r
+    }\r
 }
\ No newline at end of file
index 349d2ac..3cde41b 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-02-27 09:16:50\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-08-24 18:35:24\r
+ * @LastEditTime: 2024-08-27 14:38:37\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordListView.cpp\r
  */\r
 \r
@@ -98,7 +98,7 @@ namespace OHOS
     void RecordListView::InitRecordingInfo(void)\r
     {\r
         std::vector<OHOS::RecordingListItem> &item = RecordingModel::GetInstance()->GetRecordinglistItems();\r
-        for (int i = 0; i < RecordingModel::GetInstance()->GetRecordingListNum(); i++)\r
+        for (int i = 0; i < item.size(); i++)\r
         {\r
             AddRecordingToList(item[i]);\r
         }\r
@@ -108,7 +108,7 @@ namespace OHOS
     void RecordListView::RefreshRecordingListData(void)\r
     {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordListView::RefreshRecordingListData");\r
-        RecordingModel::GetInstance()->InitRecordingListItem(); // 这行应放到删除后调用\r
+        RecordingModel::GetInstance()->InitRecordingListItem();\r
         int num = RecordingModel::GetInstance()->GetRecordingListNum();\r
         if (p_RecordingListAdapter != nullptr && recordList != nullptr)\r
         {\r
@@ -146,15 +146,18 @@ namespace OHOS
     // 设置提醒标签是否可见\r
     void RecordListView::IsVisibleLabel(bool value)\r
     {\r
-        if (value == true)\r
+        if (RecordListViewAttentionLabel && recordList)\r
         {\r
-            RecordListViewAttentionLabel->SetVisible(true);\r
-            recordList->SetVisible(false); // 列表设置不可见\r
-        }\r
-        else\r
-        {\r
-            RecordListViewAttentionLabel->SetVisible(false);\r
-            recordList->SetVisible(true); // 列表设置可见\r
+            if (value == true)\r
+            {\r
+                RecordListViewAttentionLabel->SetVisible(true);\r
+                recordList->SetVisible(false); // 列表设置不可见\r
+            }\r
+            else\r
+            {\r
+                RecordListViewAttentionLabel->SetVisible(false);\r
+                recordList->SetVisible(true); // 列表设置可见\r
+            }\r
         }\r
     }\r
 \r
@@ -282,10 +285,9 @@ namespace OHOS
         recordList->SetDragACCLevel(5);\r
         recordList->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/\r
         recordList->SetReboundSize(30);\r
+        recordList->SetScrollBlankSize(30);\r
         recordList->SetIntercept(true); // 设置是否拦截输入事件。如果被截获,视图在本地处理后不会将输入事件传递给父视图。\r
-        // InitRecordingInfo();\r
         recordList->SetAdapter(p_RecordingListAdapter);\r
-        // recordList->RefreshList();\r
         RecordListScrollView->Add(recordList);\r
         return true;\r
     }\r
index 89b654f..21c74af 100644 (file)
@@ -9,18 +9,14 @@
 #include "custom_utils.h"
 #include <cmsis_os2.h>
 #include <service/graphic_service.h>
+#include <cstring>
 namespace OHOS
 {
-
+    std::string RecordingModel::recordTempDuration = 0;
     static MutexId g_mutex;
-    RecordingModel::RecordingModel()
-    {
-        // g_mutex = MUTEX_InitValue();
-    }
+    RecordingModel::RecordingModel() {}
 
-    RecordingModel::~RecordingModel()
-    {
-    }
+    RecordingModel::~RecordingModel() {}
 
     RecordingModel *RecordingModel::GetInstance(void)
     {
@@ -144,13 +140,13 @@ namespace OHOS
         {
             char buffer[10]; // 足够存放 "00:00\0" 的字符数组
             sprintf(buffer, "%02d:%02d", minutes, seconds);
-            KeepTotalRecordDuration(buffer);
+            SetTotalRecordDuration(buffer);
         }
         else
         {
             char buffer[12]; // 足够存放 "00:00:00\0" 的字符数组
             sprintf(buffer, "%02d:%02d:%02d", hours, minutes, seconds);
-            KeepTotalRecordDuration(buffer);
+            SetTotalRecordDuration(buffer);
         }
     }
 
@@ -191,7 +187,7 @@ namespace OHOS
         ret = PlayerCtr->GetDuration(DurationTime);
         if (ret != -1)
         {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%s,%d] GetDuration:%lld, ret:%d", __func__, __LINE__, DurationTime, ret);
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetDuration:%ld, ret:%d", DurationTime, ret);
         }
         else
         {
@@ -396,21 +392,18 @@ namespace OHOS
      */
     void RecordingModel::PreviousPlayout(void)
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PreviousPlayout, index %d.", GetClickRecordingIndex());
-        if ((GetClickRecordingIndex() > GetRecordingListNum() - 1) || (GetClickRecordingIndex() < 0))
+        int index = GetClickRecordingIndex();
+        int num = GetRecordingListNum();
+
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PreviousPlayout before index %d.", index);
+        if ((index > num - 1) || (index < 0))
         {
             WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "currentIndex err");
-            KeepClickRecordingIndex(0);
+            SetClickRecordingIndex(0);
             return;
         }
-        GetClickRecordingIndex()--; // 上一曲
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PreviousPlayout, index %d.", GetClickRecordingIndex());
-        if (GetClickRecordingIndex() < 0)
-        {
-            KeepClickRecordingIndex(GetRecordingListNum() - 1);
-        }
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PreviousPlayout, index %d.", GetClickRecordingIndex());
-        RecordingPlayerInit(GetClickRecordingIndex());
+        SetClickRecordingIndex(--index < 0 ? num - 1 : index); // 如果从第一首录音设置上一首,那就跳到最后一首
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PreviousPlayout after index %d.", GetClickRecordingIndex());
         SetCircleProgress(0);
     }
 
@@ -419,21 +412,18 @@ namespace OHOS
      */
     void RecordingModel::NextPlayout(void)
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NextPlayout, index %d.", GetClickRecordingIndex());
-        if ((GetClickRecordingIndex() > GetRecordingListNum() - 1) || (GetClickRecordingIndex() < 0))
+        int index = GetClickRecordingIndex();
+        int num = GetRecordingListNum();
+
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NextPlayout before index %d.", index);
+        if ((index > num - 1) || (index < 0))
         {
             WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "currentIndex err");
-            KeepClickRecordingIndex(0);
+            SetClickRecordingIndex(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());
+        SetClickRecordingIndex(++index > num - 1 ? 0 : index); // 如果从最后一首录音设置下一首,那就跳到第一首
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NextPlayout after index %d.", GetClickRecordingIndex());
         SetCircleProgress(0);
     }
 
@@ -500,21 +490,7 @@ namespace OHOS
      */
     void RecordingModel::InitRecordingListItem(void)
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingModel::InitRecordingListItem");
-        // 获取日期
-        char *yyyymmhhh_date_new = uapi_get_local_yyyymmdd_date();
-        if (yyyymmhhh_date_new == nullptr)
-        {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to get local date");
-            return; // 或者进行适当的错误处理
-        }
-        // 释放之前分配的日期字符串内存(如果之前有)
-        if (yyyymmhhh_date != nullptr)
-        {
-            free(yyyymmhhh_date);
-        }
-        // 更新日期字符串成员
-        yyyymmhhh_date = yyyymmhhh_date_new;
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingModel::InitRecordingListItem");
         RecordingMp3FileCount = 0;
         if (!fileNames.empty())
         {
@@ -525,20 +501,28 @@ namespace OHOS
             Recordings.clear();
         }
         SearchFiles(directory, fileNames, RecordingMp3FileCount);
+        RecordDataReadToFile();
         if (RecordingMp3FileCount != 0)
         {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Total .mp3 Files Count:%d\n", RecordingMp3FileCount);
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Total .mp3 Files Count:%d", RecordingMp3FileCount);
             for (const auto &filename : fileNames)
             {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "File Name::%s\n", filename.c_str());
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "File Name::%s", filename.c_str());
             }
             // 对 Recordings 数组进行操作
             for (int i = 0; i < RecordingMp3FileCount; i++)
             {
-                Recordings.push_back({i, fileNames[i].c_str(), "09:51", yyyymmhhh_date});
+                for (int j = 0; j < RecordingMp3FileCount; j++)
+                {
+                    if (fileNames[i] == recordingInfo[j].recordingFileName)
+                    {
+                        Recordings.push_back({i, recordingInfo[j].recordingFileName, recordingInfo[j].recordingDuration, recordingInfo[j].recordingTime});
+                        break;
+                    }
+                }
             }
         }
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingModel::InitRecordingListItem over!!");
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingModel::InitRecordingListItem over!!");
     }
 
     /*
@@ -562,16 +546,22 @@ namespace OHOS
     /*
      * @brief 获取录音数量
      */
-    int &RecordingModel::GetRecordingListNum(void)
+    int RecordingModel::GetRecordingListNum(void)
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingModel::GetRecordingListNum %d",RecordingMp3FileCount);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingModel::GetRecordingListNum %d", RecordingMp3FileCount);
         return RecordingMp3FileCount;
     }
 
+    void RecordingModel::SetRecordingListNum(int value)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingModel::GetRecordingListNum %d", value);
+        RecordingMp3FileCount = value;
+    }
+
     /*
      * @brief 保存被点击录音下标
      */
-    void RecordingModel::KeepClickRecordingIndex(int index_)
+    void RecordingModel::SetClickRecordingIndex(int index_)
     {
         index = index_;
     }
@@ -579,7 +569,7 @@ namespace OHOS
     /*
      * @brief 获取被点击录音下标
      */
-    int &RecordingModel::GetClickRecordingIndex(void)
+    int RecordingModel::GetClickRecordingIndex(void)
     {
         return index;
     }
@@ -593,9 +583,9 @@ namespace OHOS
     }
 
     /*
-     * @brief 保存录音时长
+     * @brief 保存录音的总时长
      */
-    void RecordingModel::KeepTotalRecordDuration(std::string time)
+    void RecordingModel::SetTotalRecordDuration(std::string time)
     {
         TotalRecordDuration = time;
     }
@@ -611,17 +601,84 @@ namespace OHOS
     /*
      * @brief 获取录音年月日时间
      */
-    std::string RecordingModel::Getyyyymmhhh_date(void) const
+    std::string RecordingModel::Getyyyymmhhh_date(void)
     {
+        char *yyyymmhhh_date_new = uapi_get_local_yyyymmdd_date(); // 获取日期
+        if (yyyymmhhh_date_new == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to get local date");
+            return ""; // 或者进行适当的错误处理
+        }
+        // 释放之前分配的日期字符串内存(如果之前有)
+        if (yyyymmhhh_date != nullptr)
+        {
+            free(yyyymmhhh_date);
+        }
+        // 更新日期字符串成员
+        yyyymmhhh_date = yyyymmhhh_date_new;
         return yyyymmhhh_date;
     }
 
+    RecordingInfo *RecordingModel::GetRecordingInfo()
+    {
+        return recordingInfo;
+    }
+
+    // 设置每首录音的信息
+    void RecordingModel::SetRecordingInfo(RecordingInfo &info, int index)
+    {
+        recordingInfo[index] = info;
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recordingFileName = %s", recordingInfo[index].recordingFileName);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recordingDuration = %s", recordingInfo[index].recordingDuration);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recordingTime = %s", recordingInfo[index].recordingTime);
+    }
+
+    void RecordingModel::UpdateRecordingInfo(int index)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateRecordingInfo %s", recordingInfo[index].recordingFileName);
+        if (index < 0 || index > RecordingMp3FileCount)
+        {
+            return;
+        }
+        char *file_name = recordingInfo[index].recordingFileName;
+        std::string delete_filename = (directory + file_name).append(".mp3");
+        /* -------------------------------- 删除录音文件 -------------------------------- */
+        uapi_delete_files(delete_filename.c_str());
+        /* -------------------------------------------------------------------------- */
+        int i = 0;
+        for (i = index; i < (RecordingMp3FileCount - 1); i++)
+        {
+            strcpy(recordingInfo[i].recordingFileName, recordingInfo[i + 1].recordingFileName);
+            strcpy(recordingInfo[i].recordingDuration, recordingInfo[i + 1].recordingDuration);
+            strcpy(recordingInfo[i].recordingTime, recordingInfo[i + 1].recordingTime);
+
+            fileNames[i] = fileNames[i + 1];
+        }
+        RecordingMp3FileCount--;
+        RecordingInfo info = {0};
+        SetRecordingInfo(info, i);
+        fileNames[i].clear();
+        RecordDataWriteToFile();
+    }
+
+    // 设置当前的录音文件名,每次录音会更改
+    void RecordingModel::SetRecordFileName(std::string name)
+    {
+        recordFileName = name;
+    }
+
+    // 获取当前的录音文件名,每次录音会更改
+    std::string RecordingModel::GetRecordFileName(void)
+    {
+        return recordFileName;
+    }
+
     /*
      * @brief 获取年月日时间和录音时长
      */
     std::string &RecordingModel::Getyyyymmhhh_dateAndTotalRecordDuration(void)
     {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[RecordingModel] Getyyyymmhhh_dateAndTotalRecordDuration\n");
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[RecordingModel] Getyyyymmhhh_dateAndTotalRecordDuration");
         std::string yyyymmhhh_date = RecordingModel::GetInstance()->Getyyyymmhhh_date();
         std::string TotalRecordDuration = RecordingModel::GetInstance()->GetTotalRecordDuration();
         // 去掉日期字符串末尾的换行符
@@ -638,6 +695,50 @@ namespace OHOS
     {
         return directory.c_str();
     }
+
+    int RecordingModel::RecordDataWriteToFile()
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:RecordDataWriteToFile,%d", __LINE__, RecordingMp3FileCount);
+        if (0 == RecordingMp3FileCount)
+        {
+            return OHOS_FAILURE;
+        }
+
+        FILE *fp = fopen(recordInfoFile.c_str(), "wb+");
+        if (nullptr == fp)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:RecordDataWriteToFile fail", __LINE__);
+            return OHOS_FAILURE;
+        }
+
+        size_t ret = fwrite(recordingInfo, sizeof(RecordingInfo), RecordingMp3FileCount, fp);
+        if (RecordingMp3FileCount != ret)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:RecordDataWriteToFile fail", __LINE__);
+        }
+        fclose(fp);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:RecordDataWriteToFile success", __LINE__);
+
+        return OHOS_SUCCESS;
+    }
+
+    int RecordingModel::RecordDataReadToFile()
+    {
+        if (0 == RecordingMp3FileCount)
+        {
+            return OHOS_FAILURE;
+        }
+        FILE *fp = fopen(recordInfoFile.c_str(), "rb");
+        if (fp == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:RecordDataReadToFile", __LINE__);
+            return OHOS_FAILURE;
+        }
+        fread(recordingInfo, sizeof(RecordingInfo), RecordingMp3FileCount, fp);
+        fclose(fp);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:RecordDataReadToFile success", __LINE__);
+        return OHOS_SUCCESS;
+    }
     /* ----------------------------------- 定时器 ---------------------------------- */
     // 声明定时器变量
     osTimerId_t g_timer = NULL;
@@ -690,17 +791,18 @@ namespace OHOS
             seconds = std::to_string(sec);
         }
 
-#if 0
+#if 1
         if (hour == 0)
         {
-            recordDuration = minute + ":" + seconds;
+            recordTempDuration = minute + ":" + seconds;
         }
         else
         {
-            recordDuration = hours + ":" + minute + ":" + seconds;
+            recordTempDuration = hours + ":" + minute + ":" + seconds;
         }
-#endif
         recordDuration = hours + ":" + minute + ":" + seconds;
+#endif
+
         return (char *)recordDuration.c_str();
     }
 
index d71577e..1bca762 100644 (file)
@@ -101,7 +101,7 @@ namespace OHOS
         button->SetImageSrc(buttonconfig.ImageSrc, buttonconfig.ImageSrc);\r
         button->SetImagePosition(20, 20);\r
         button->SetStyle(STYLE_BORDER_RADIUS, 100);\r
-        button->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffff5a36, UIButton::PRESSED);\r
+        button->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);\r
         button->SetOnClickListener(clickListener);\r
         return button;\r
     }\r
@@ -137,7 +137,7 @@ namespace OHOS
             .height = 35,\r
             .fontSize = 30,\r
             .lineHeigh = 35,\r
-            .text = "录音3",\r
+            .text = "",\r
             .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
         };\r
 \r
@@ -151,13 +151,14 @@ namespace OHOS
         labelconfig.top = 102;\r
         labelconfig.fontSize = 28;\r
         labelconfig.lineHeigh = 33;\r
-        labelconfig.text = "2022.04.21 -20:57";\r
+        labelconfig.text = "";\r
         RecordingTimeAndDuration = SetUpLabel(labelconfig);\r
         if (nullptr == RecordingTimeAndDuration)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingPlayerView::RecordingTimeAndDuration is nullptr!");\r
             return false;\r
         }\r
+        RecordingTimeAndDuration->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
         return true;\r
     }\r
 \r
index c919d15..487dc76 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-08-24 17:13:46\r
+ * @LastEditTime: 2024-08-27 17:48:39\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingPresenter.cpp\r
  */\r
 \r
 #include "string.h"\r
 #include "record/include/RecordingPresenter.h"\r
 #include <wearable_log.h>\r
-#include "../../../../../../drivers/peripheral/utils/custom_utils.h"\r
+#include "custom_utils.h"\r
 #include "record/include/RecordingListitemView.h"\r
 #include <service/graphic_service.h>\r
 #include <unistd.h>\r
 #include "record/include/RecordingModel.h"\r
+#include <cstring>\r
 \r
 namespace OHOS\r
 {\r
@@ -49,7 +50,7 @@ namespace OHOS
         p_RecordingModel->InitRecordingListItem();\r
         p_RecordingModel->AudioInit();\r
         Presenter<RecordingView>::OnStart();\r
-        //ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);\r
+        // ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);\r
     }\r
 \r
     void RecordingPresenter::OnPause(void)\r
@@ -67,7 +68,9 @@ namespace OHOS
     {\r
         Presenter<RecordingView>::OnStop();\r
         p_RecordingModel->ClearRecordingPlayer();\r
-        //ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);\r
+        StopRecord();\r
+\r
+        // ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);\r
     }\r
 \r
     bool RecordingPresenter::OnDrag(UIView &view, const DragEvent &event)\r
@@ -100,20 +103,20 @@ namespace OHOS
 \r
         switch (event.GetDragDirection())\r
         {\r
-        case DragEvent::DIRECTION_LEFT_TO_RIGHT:\r
+        case DragEvent::DIRECTION_LEFT_TO_RIGHT: // 右滑退出\r
             switch (currentView)\r
             {\r
             case RECORDINGVIEW:\r
                 NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
                 break;\r
             case RECORDINGPLAYERVIEW:\r
-                p_RecordingView->ChangeView(RECORDINGPLAYERVIEW, RECORDINGLISTVIEW);\r
+                p_RecordingView->ChangeView(RECORDINGPLAYERVIEW, RECORDINGLISTVIEW); // 录音播放视图(subView)->录音列表视图(subView)\r
                 break;\r
             case RECORDINGDELETEVIEW:\r
-                p_RecordingView->ChangeView(RECORDINGDELETEVIEW, RECORDINGPLAYERVIEW);\r
+                p_RecordingView->ChangeView(RECORDINGDELETEVIEW, RECORDINGPLAYERVIEW); // 录音删除视图(subView)->录音播放视图(subView)\r
                 break;\r
             case RECORDINGVOLUMESETTINGVIEW:\r
-                p_RecordingView->ChangeView(RECORDINGVOLUMESETTINGVIEW, RECORDINGPLAYERVIEW);\r
+                p_RecordingView->ChangeView(RECORDINGVOLUMESETTINGVIEW, RECORDINGPLAYERVIEW); // 声音设置视图(subView)->录音播放视图(subView)\r
                 break;\r
             default:\r
                 break;\r
@@ -155,30 +158,78 @@ namespace OHOS
         return 1; // 转换成功\r
     }\r
 \r
-    /*\r
-     * @brief 删除文件\r
-     */\r
-    void RecordingPresenter::deleteFile(const char *filepath)\r
+#ifdef __cplusplus\r
+    extern "C"\r
     {\r
-        if (std::remove(filepath) == 0)\r
+#endif\r
+        int32_t AudioCaptureSample(int32_t argc, const char *argv[]);\r
+\r
+#ifdef __cplusplus\r
+    };\r
+#endif\r
+\r
+    /*开始录音*/\r
+    void RecordingPresenter::StartRecord(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView StartRecord");\r
+        char *args[6] = {0};\r
+        const char *defaultArgs[6] = {"01", "mp3", "16000", "1", "16", nullptr}; // 默认参数数组\r
+        for (int i = 0; i < 5; ++i)\r
+        {\r
+            args[i] = (char *)malloc(16);           // 分配内存\r
+            sprintf(args[i], "%s", defaultArgs[i]); // 设置默认参数值\r
+        }\r
+        args[5] = (char *)malloc(100); // 分配内存\r
+        /* -------------------------------------------------------------------------- */\r
+        int num = p_RecordingModel->GetRecordingListNum();\r
+        std::string recordfileNme;\r
+        if (num < 9)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Deleted file: %s successed!", filepath);\r
+            recordfileNme = "record_0" + std::to_string(num + 1);\r
         }\r
         else\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to delete file!");\r
+            recordfileNme = "record_" + std::to_string(num + 1);\r
+        }\r
+        p_RecordingModel->SetRecordFileName(recordfileNme);\r
+        sprintf(args[5], "%s%s.mp3", RecordingModel::GetInstance()->GetRecordDirectory(), recordfileNme.c_str());\r
+        /* ---------------------------------- 开始录音 ---------------------------------- */\r
+        AudioCaptureSample(6, (const char **)args);\r
+        /* --------------------------------- 跳转到录音界面 -------------------------------- */\r
+        view_->ChangeView(RECORDINGVIEW, RECORDGOINGVIEW);\r
+        p_RecordingModel->Recording_StartTimer();\r
+        RecordGoingView::GetInstance()->GetRecordingDurationLabel()->SetText("00:00:00");\r
+        /* ---------------------------------- 释放内存 ---------------------------------- */\r
+        for (int i = 0; i < 6; ++i)\r
+        {\r
+            free(args[i]);\r
         }\r
     }\r
 \r
-#ifdef __cplusplus\r
-    extern "C"\r
+    // 停止录音\r
+    void RecordingPresenter::StopRecord(void)\r
     {\r
-#endif\r
-        int32_t AudioCaptureSample(int32_t argc, const char *argv[]);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RecordingView StopRecord");\r
+        int32_t argc = 1;\r
+        uint8_t *argv = (uint8_t *)"stop";\r
+        AudioCaptureSample(argc, (const char **)&argv);\r
+        /* ---------------------------------- 停止定时器 --------------------------------- */\r
+        p_RecordingModel->Recording_StopTimer();\r
+        /* --------------------------------- 设置录音信息 --------------------------------- */\r
+        int index = p_RecordingModel->GetRecordingListNum();                            // 保存录音的下标\r
+        std::string recordingFileName = p_RecordingModel->GetRecordFileName();          // 录音文件名\r
+        std::string yyymmhhh_date = RecordingModel::GetInstance()->Getyyyymmhhh_date(); // 保存录音年月日时间\r
+        std::string TotalRecordDuration = RecordingModel::recordTempDuration;           // 录音的总时长\r
+        RecordingInfo info = {0};\r
+        strncpy_s(info.recordingFileName, 32, recordingFileName.c_str(), recordingFileName.length());\r
+        strncpy_s(info.recordingDuration, 16, TotalRecordDuration.c_str(), TotalRecordDuration.length());\r
+        strncpy_s(info.recordingTime, 16, yyymmhhh_date.c_str(), yyymmhhh_date.length());\r
+        p_RecordingModel->SetRecordingInfo(info, index);\r
+        p_RecordingModel->SetRecordingListNum(index + 1);\r
+        p_RecordingModel->RecordDataWriteToFile();\r
 \r
-#ifdef __cplusplus\r
-    };\r
-#endif\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingView StopRecord over!!");\r
+    }\r
 \r
     bool RecordingPresenter::OnClick(UIView &view, const ClickEvent &event)\r
     {\r
@@ -191,61 +242,25 @@ namespace OHOS
 \r
         if (strcmp(view.GetViewId(), RECORD_BUTTON) == 0)\r
         {\r
-            char *args[6] = {0};\r
-            const char *defaultArgs[6] = {"01", "mp3", "16000", "1", "16", nullptr}; // 默认参数数组\r
-\r
-            for (int i = 0; i < 5; ++i)\r
-            {\r
-                args[i] = (char *)malloc(25);           // 分配内存\r
-                sprintf(args[i], "%s", defaultArgs[i]); // 设置默认参数值\r
-            }\r
-            args[5] = (char *)malloc(100); // 分配内存\r
-\r
-            char *numericDateTime = (char *)malloc(20);\r
-            uapi_get_yyyymmddhhmmss_Date(numericDateTime); // 获取形如:19700101000641格式的日期时间\r
-            char formattedDateTime[80];\r
-            if (convertNumericDateTime(numericDateTime, formattedDateTime))\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Formatted DateTime: %s\n", formattedDateTime);\r
-                sprintf(args[5], "%s%s.mp3", RecordingModel::GetInstance()->GetRecordDirectory(), formattedDateTime);\r
-            }\r
-            else\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to convert numeric date time\n", formattedDateTime);\r
-            }\r
-            /* ---------------------------------- 开始录音 ---------------------------------- */\r
-            AudioCaptureSample(6, (const char **)args);\r
-            /* --------------------------------- 跳转到录音界面 -------------------------------- */\r
-            p_RecordingView->ChangeView(RECORDINGVIEW, RECORDGOINGVIEW);\r
-            p_RecordingModel->Recording_StartTimer(1000);\r
-            RecordGoingView::GetInstance()->GetRecordingDurationLabel()->SetText("00:00:00");\r
-            /* ---------------------------------- 释放内存 ---------------------------------- */\r
-            for (int i = 0; i < 6; ++i)\r
-            {\r
-                free(args[i]);\r
-            }\r
-            free(numericDateTime);\r
-            /* -------------------------------------------------------------------------- */\r
+            StartRecord();\r
             return true;\r
         }\r
         else if (strcmp(view.GetViewId(), RECORD_GOING_BUTTON_VIEWID) == 0)\r
         {\r
-            int32_t argc = 1;\r
-            uint8_t *argv = (uint8_t *)"stop";\r
-            AudioCaptureSample(argc, (const char **)&argv);\r
-            p_RecordingView->ChangeView(RECORDGOINGVIEW, RECORDINGVIEW);\r
-            p_RecordingModel->Recording_StopTimer();\r
+            StopRecord();\r
+            view_->ChangeView(RECORDGOINGVIEW, RECORDINGVIEW);\r
             return true;\r
         }\r
-        else if (strcmp(view.GetViewId(), RECORD_DELETE_ON_BUTTON_VIEWID) == 0)\r
+        else if (strcmp(view.GetViewId(), RECORD_DELETE_ON_BUTTON_VIEWID) == 0) // 若点击的是录音删除按钮\r
         {\r
-            std::string fileName = RecordingModel::GetInstance()->GetRecordDirectory() + p_RecordingModel->GetFileNames()[p_RecordingModel->GetClickRecordingIndex()] + ".mp3";\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "fileName:%s\n", fileName.c_str());\r
-            deleteFile(fileName.c_str());\r
-            if (--p_RecordingModel->GetRecordingListNum() < 0)\r
-            {\r
-                p_RecordingModel->GetRecordingListNum() = 0;\r
-            }\r
+            int index = p_RecordingModel->GetClickRecordingIndex();\r
+            // std::string delete_path = RecordingModel::GetInstance()->GetRecordDirectory();\r
+            // std::string delete_filename = p_RecordingModel->GetFileNames()[index] + ".mp3";\r
+            // std::string fileName = delete_path + delete_filename;\r
+            // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "index = %d ", index);\r
+            // uapi_delete_files(fileName.c_str());//删除录音文件\r
+            p_RecordingModel->UpdateRecordingInfo(p_RecordingModel->GetRecordingListNum() - index - 1);\r
+\r
             p_RecordingView->ChangeView(RECORDINGDELETEVIEW, RECORDINGVIEW);\r
             return true;\r
         }\r
@@ -290,7 +305,7 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingModel GetInstance fail");\r
             return false;\r
         }\r
-        p_RecordingModel->KeepClickRecordingIndex(index);\r
+        p_RecordingModel->SetClickRecordingIndex(index);\r
         /* ------------------------ 录音播放初始化,包括录音文件名,录音时间和总时长 ------------------------ */\r
         if (p_RecordingModel->RecordingPlayerInit(index) != OHOS_SUCCESS)\r
         {\r
@@ -337,9 +352,6 @@ namespace OHOS
         return true;\r
     }\r
 \r
-    /*\r
-     * @brief 播放按钮被点击\r
-     */\r
     void RecordingPlayerViewOnClickListener::PlayerButtonOnClick(void)\r
     {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingPlayerViewOnClickListener PlayerButtonOnClick");\r
@@ -415,34 +427,26 @@ namespace OHOS
             return false;\r
         }\r
 \r
-        if (strcmp(view.GetViewId(), RECORD_PLAY_PAUSE_CHECKBOX_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
+        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
             p_RecordingModel->PreviousPlayout();\r
-\r
             p_RecordingPlayerView->ResetComponentStatus();\r
         }\r
-        else if (strcmp(view.GetViewId(), RECORD_PLAY_NEXT_BUTTON_VIEWID) == 0)\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
-\r
             p_RecordingModel->NextPlayout();\r
-\r
             p_RecordingPlayerView->ResetComponentStatus();\r
         }\r
-        else if (strcmp(view.GetViewId(), RECORD_PLAY_DELETE_BUTTON_VIEWID) == 0)\r
+        else if (strcmp(view.GetViewId(), RECORD_PLAY_DELETE_BUTTON_VIEWID) == 0) // 删除按钮被点击\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recording player delete button being clicked!");\r
             p_RecordingView->ChangeView(RECORDINGPLAYERVIEW, RECORDINGDELETEVIEW);\r
         }\r
-        else if (strcmp(view.GetViewId(), RECORD_PLAY_VOLUME_BUTTON_VIEWID) == 0)\r
+        else if (strcmp(view.GetViewId(), RECORD_PLAY_VOLUME_BUTTON_VIEWID) == 0) // 音量按钮被点击\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recording player volume button being clicked!");\r
             p_RecordingView->ChangeView(RECORDINGPLAYERVIEW, RECORDINGVOLUMESETTINGVIEW);\r
         }\r
         return true;\r
index 7e52995..d1e297b 100644 (file)
@@ -209,6 +209,8 @@ namespace OHOS
             RecordingViewScrollView[thisView] = p_RecordDeleteView->RecordDeleteViewInit();\r
             container_->Add(RecordingViewScrollView[thisView]);\r
         }\r
+        std::string name = RecordingModel::GetInstance()->GetCurrentPlayRecordingName();\r
+        p_RecordDeleteView->SetRecordDeleteName(name.c_str());\r
         return true;\r
     }\r
 \r
index 98e5ba2..3e67abf 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-13 17:38:18
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-24 15:42:50
+ * @LastEditTime: 2024-08-26 18:16:06
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingVolumeSettingView.cpp
  */
 #include "record/include/RecordingVolumeSettingView.h"
@@ -64,7 +64,8 @@ namespace OHOS
             return nullptr;
         }
 
-        p_SoundAndVibrationVolumeSettingView->GetVolumeProcess()->SetValue(ConfigModel::GetInstance()->GetSystemVolume());
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "volume:%d", AudioManager::GetInstance().GetVolume(AUDIO_STREAM_MUSIC));
+        p_SoundAndVibrationVolumeSettingView->GetVolumeProcess()->SetValue(AudioManager::GetInstance().GetVolume(AUDIO_STREAM_MUSIC));
 
         initViewStatus = true;
         return RecordingVolumeSettingViewScrollView;