Merge #1215 into sdk602patch0911 from refs/changes/1215/head 1216/target/1 1217/target/1
author罗正 <1732036298@qq.com>
Sat, 19 Oct 2024 07:15:40 +0000 (07:15 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Sat, 19 Oct 2024 07:15:40 +0000 (07:15 +0000)
Code review from 罗正

* refs/changes/1215/head: (10 commits squashed)

  - AI语音录音时间由15修改为10秒,10秒后超时自动发送录音数据

  - 1.目标提醒弹窗加震动
    2.运动识别和久坐提醒震动增加受勿扰和睡眠模式开关影响
    3.修改默认震动强度为中

  - Merge branch &#39;sdk602patch0911&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0911

  - 修改KV Store 的Cache 大小为100

  - Merge branch &#39;sdk602patch0911&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0911

  - Merge branch &#39;sdk602patch0911&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0911

  - #1029,解决,手表,iOS,手机播放音乐,手表使用AI功能,手表依然在播放音乐,

  - Merge branch &#39;sdk602patch0911&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0911

  - 解决训练界面音乐进度条不更新问题

  - #1023,解决闹钟有出现没有声音现象bug

Signed-off-by: 罗正 <1732036298@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/1215
code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp
code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoicePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp
code/sdk/application/wearable/fd230app/nativeui/player/include/PlayersModel.h
code/sdk/application/wearable/fd230app/nativeui/player/src/PlayersModel.cpp
code/sdk/application/wearable/service/msg_center/src/notify/findwatch_notification.cpp

index f55bc2a..82294ac 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-20 15:14:50
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-10-17 10:18:24
+ * @LastEditTime: 2024-10-17 15:19:15
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp
  */
 #include "aivoice/include/AiVoiceModel.h"
@@ -728,7 +728,8 @@ namespace OHOS
     }
     static void ai_start_screen60s_timer_callback(int data)
     {
-        GraphicService::GetInstance()->PostGraphicEvent(std::bind(ai_start_screen60s_timer_callbackProc, data));
+        // GraphicService::GetInstance()->PostGraphicEvent(std::bind(ai_start_screen60s_timer_callbackProc, data));
+        ai_start_screen60s_timer_callbackProc(data);
     }
     void AiVoiceModel::ai_start_screen60s_timer(uint32_t interval)
     {
@@ -782,8 +783,8 @@ namespace OHOS
     }
     void AiVoiceModel::reset_ai_screen60s_timer_time()
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "reset_ai_screen60s_timer_time");
         SCREEN_60S_TIME = 60;
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "reset_ai_screen60s_timer_time %d",SCREEN_60S_TIME);
         if (nullptr == g_screen60s_timer)
         {
             ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 重新常亮屏
index 6ae30d7..dad5bf0 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-20 15:11:17
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-10-16 18:29:25
+ * @LastEditTime: 2024-10-18 10:58:29
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoicePresenter.cpp
  */
 #include "AppViewIDs.h"
 
 #include "gfx_utils/mem_check.h"
 #include "bleService.h"
+#include "player/include/PlayersModel.h"
 
 namespace OHOS
 {
+#define BLE_CONNECT_INTERVAL_HIGH_AI 10
     // 当前Presenter属性实例化的内存指针
     static AiVoicePresenter *g_pAiVoicePresenter = nullptr;
 
@@ -60,7 +62,7 @@ namespace OHOS
         // 开启一个60s取消长亮屏timer
         model->ai_start_screen60s_timer();
 
-        uapi_ble_connect_param_update(10);
+        uapi_ble_connect_param_update(BLE_CONNECT_INTERVAL_HIGH_AI);
     }
 
     // 页面已经展示后的调用逻辑
@@ -93,7 +95,7 @@ namespace OHOS
         model->stop_listening_timer();
         model->stop_ai_isready_timer();
 
-        uapi_ble_connect_param_update(50);
+        uapi_ble_connect_param_update(BLE_CONNECT_INTERVAL_SLOW);
     }
 
     /*调转到返回结果界面*/
@@ -118,8 +120,8 @@ namespace OHOS
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AiVoicePresenter::ChangeToAIVoiceListeningView");
         if (view_->GetAiVoiceScrollView(AIVOICE_AIMODE_CONNECTING) != nullptr && view_->GetAiVoiceScrollView(AIVOICE_AIMODE_CONNECTING)->IsVisible())
         {
-            model->stop_ai_isready_timer();// 停止定时器
-            if (val) /*如果查询的AI模型可用跳转到聆听中界面*/
+            model->stop_ai_isready_timer(); // 停止定时器
+            if (val)                        /*如果查询的AI模型可用跳转到聆听中界面*/
             {
                 ChangeViewAndLogicOperator(AIVOICE_AIMODE_CONNECTING, AIVOICE_LISTENING_VIEWID);
             }
@@ -161,7 +163,7 @@ namespace OHOS
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AiModelsPresenter::index = %d", index);
         model->SetSelectAiModel(index);
         view_->ChangeAiModelAndUpdateComponentsStatus();
-        model->reset_ai_screen60s_timer_time();//重置60s取消常亮屏timer
+        model->reset_ai_screen60s_timer_time(); // 重置60s取消常亮屏timer
         return;
     }
 
@@ -203,6 +205,9 @@ namespace OHOS
             return false;
         }
 
+        /* ------------------------ 进行界面切换的时候重置60s取消常亮屏timer ------------------------ */
+        model->reset_ai_screen60s_timer_time();
+        /* -------------------------------------------------------------------------- */
         view_->ChangeView(hideView, showView); // 默认先进行视图切换
 
         switch (hideView)
@@ -215,7 +220,7 @@ namespace OHOS
             }
             else if (showView == AIVOICE_AIMODE_CONNECTING)
             {
-                model->start_ai_isready_timer();/*开启一个查询AI模型是否连接成功定时器*/
+                model->start_ai_isready_timer(); /*开启一个查询AI模型是否连接成功定时器*/
             }
             break;
 
@@ -304,6 +309,7 @@ namespace OHOS
         }
         else if (viewId == AIVOICE_START_CHAT_BUTTON_VIEW_ID) // 如果点击的是开始对话按钮
         {
+            PlayersModel::GetInstance()->HandPausePhoneMusci(); // 暂停手机音乐
             /*
              * 进入对话流程:
              *   1.当手表4G网络正常+与app连接正常 -> 通过4G调用大模型
@@ -350,9 +356,10 @@ namespace OHOS
         auto it = viewIdMap.find(viewId);
         if (it != viewIdMap.end())
         {
-            if(it->first == AIVOICERETURNRESULTTEXT_CONTINUECHAT_BUTTON_VIEW_ID) //点击继续对话按钮要发取消当前对话指令,避免AI回应中途按继续对话按钮没有取消上一次对话问题
+            if (it->first == AIVOICERETURNRESULTTEXT_CONTINUECHAT_BUTTON_VIEW_ID) // 点击继续对话按钮要发取消当前对话指令,避免AI回应中途按继续对话按钮没有取消上一次对话问题
             {
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CancelCurAIChat");
+                PlayersModel::GetInstance()->HandPausePhoneMusci(); // 暂停手机音乐
                 AiVoiceModel::GetInstance().CancelCurAIChat();
             }
             ChangeViewAndLogicOperator(it->second.first, it->second.second);
@@ -387,7 +394,7 @@ namespace OHOS
             return false;
         }
 
-        model->reset_ai_screen60s_timer_time();//重置60s取消常亮屏timer
+        model->reset_ai_screen60s_timer_time(); // 重置60s取消常亮屏timer
 
         if (event.GetDragDirection() == DragEvent::DIRECTION_RIGHT_TO_LEFT) /*左滑*/
         {
index 6571a18..7f7190b 100644 (file)
@@ -411,6 +411,7 @@ extern "C"
 \r
         HandleAlarmOnTime(&curTime);\r
         HandleSleepReminder(&curTime);\r
+        HandleMusicUpdate();\r
 \r
         //以下弹窗被控制\r
         if (HandleCanShowDialog()) {\r
@@ -420,7 +421,6 @@ extern "C"
 \r
         HandleDrinkReminder(&curTime);  \r
         HandleHeartRateDetection(&curTime);  \r
-        HandleMusicUpdate();\r
     }\r
     \r
     //判断是否绑定\r
@@ -591,12 +591,12 @@ extern "C"
         if (curviewid != VIEW_MAIN && OHOS::PlayersView::GetInstance()) { // 当前不在主界面且音乐界面不为空  \r
             OHOS::UICheckBox::UICheckBoxState state = OHOS::PlayersView::GetInstance()->GetPlayerButtonState();  \r
             if (state == OHOS::UICheckBox::UICheckBoxState::SELECTED) {  \r
-                SendMsgToUIService(UI_UPDATE_PLAYERPROCESS, 0, nullptr, 0);  \r
+                SendMsgToUIService(UI_UPDATE_PLAYERPROCESS, 0, nullptr, 0);//音乐进度条更新  \r
             }  \r
         } else if (OHOS::RecordingPlayerView::GetInstance()) {  \r
             OHOS::UICheckBox::UICheckBoxState state = OHOS::RecordingPlayerView::GetInstance()->GetPlayerButtonState();  \r
             if (state == OHOS::UICheckBox::UICheckBoxState::SELECTED) {  \r
-                SendMsgToUIService(UI_UPDATE_RECORDPROCESS, 0, nullptr, 0);  \r
+                SendMsgToUIService(UI_UPDATE_RECORDPROCESS, 0, nullptr, 0);//录音进度条更新  \r
             }  \r
         }\r
     }\r
index c02c6ea..793e13b 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-08-05 15:20:03
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-09-28 14:58:16
+ * @LastEditTime: 2024-10-18 10:55:54
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/player/include/PlayersModel.h
  */
 
@@ -111,6 +111,9 @@ public:
     void get_avrcp_ct_get_element_attributes(void);
     void set_player_state(bool value);
     bool get_player_state();
+    bool get_a2dp_sink_connect_state(void);
+    void HandPausePhoneMusci(void);
+    void HandPlayPhoneMusci(void);
     // /* -------------------------------------------------------------------------- */
     std::unordered_map<uint16_t, std::pair<std::string,std::string>> &getIdToMusicNameMap(void);
     std::string getRealMusicNameById(int id);
index 64f4778..62a81ba 100644 (file)
@@ -21,6 +21,7 @@
 #include "MainViewSample.h"
 #include "settings/include/SettingModel.h"
 #include "bluetooth/include/BluetoothHeadsetEvent.h"
+#include <bts_a2dp_sink.h>
 namespace OHOS {
 
 static constexpr int VOLUME_MAXIMUM = 100;
@@ -995,6 +996,39 @@ bool PlayersModel::GetCurrentMusicIsPlaying(void)
         return false;
     }
 
+    // 获取手机音乐播放状态
+    bool PlayersModel::get_a2dp_sink_connect_state(void)
+    {
+        bd_addr_t active_bd_addr = a2dp_snk_get_active_device();
+        int state = a2dp_snk_get_playing_state(&active_bd_addr);
+        if (state == A2DP_IS_PLAYING) {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "A2DP_IS_PLAYING");
+            return true;
+        }
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "A2DP_NOT_PLAYING");
+        return false;
+    }
+
+
+    //暂停播放手机音乐
+    void PlayersModel::HandPausePhoneMusci(void)
+    {
+        if (get_avrcp_ct_or_tg_is_connected() && get_a2dp_sink_connect_state())
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AVRCP_KEY_PAUSE");
+            set_phone_music_play_state(AVRCP_KEY_PAUSE); // 控制手机音乐暂停
+        }
+    }
+
+    //播放手机音乐
+    void PlayersModel::HandPlayPhoneMusci(void)
+    {
+        if (get_avrcp_ct_or_tg_is_connected() && get_a2dp_sink_connect_state())
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AVRCP_KEY_PLAY");
+            set_phone_music_play_state(AVRCP_KEY_PLAY); // 控制手机音乐暂停
+        }
+    }
     //用来控制手机音乐的播放,暂停,下一首,上一首音乐
     void PlayersModel::set_phone_music_play_state(avrcp_key_operation_t notify)
     {
index f040736..0f6e128 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-25 17:33:47
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-10-10 11:50:28
+ * @LastEditTime: 2024-10-18 18:02:00
  * @FilePath: /FD230/code/sdk/application/wearable/service/msg_center/src/notify/findwatch_notification.cpp
  * @details:实现查找手表的功能一般需要手表和智能手机之间的配合,通常是通过手机上的应用(App)或其他设备发送指令给手表,触发手表的查找功能。
  * 以下是基本的实现步骤:
@@ -113,14 +113,6 @@ namespace OHOS
     void FindWatchViewEventListener::SetFindWatchNotifyFlag(bool flag)
     {
         FindWatchNotifyFlag = flag;
-        // if(FindWatchNotifyFlag)
-        // {
-        //     FindWatch_StartTimer();
-        // }
-        // else
-        // {
-        //     FindWatch_StopTimer();
-        // }
     }
 
     // 获取查找手表通知状态
@@ -129,28 +121,26 @@ namespace OHOS
         return FindWatchNotifyFlag;
     }
 
+    // 震动
     void FindWatchViewEventListener::SetVibration(void)
     {
-        // if(true == ConfigModel::GetInstance()->GetDnotdisturb() || (uapi_sleep_mode_flag_get()))
-        // {
-        //     return;
-        // }
-
-        if(nullptr != FindWatchGroupView)
+        if (nullptr != FindWatchGroupView)
         {
             ui_api_vibrate_once_func();
         }
     }
 
+    // 闪烁屏幕
     void FindWatchViewEventListener::SetLCDFlicker(bool state)
     {
-        if(nullptr != FindWatchGroupView)
+        if (nullptr != FindWatchGroupView)
         {
             FindWatchGroupView->SetStyle(STYLE_BACKGROUND_COLOR, state ? 0xff000000 : 0xffffffff);
             FindWatchGroupView->Invalidate();
         }
     }
 
+    /*设置屏幕亮度100%*/
     void FindWatchViewEventListener::SetScreenBrightness(void)
     {
         const power_display_svr_api_t *display_api = power_display_svr_get_api();
@@ -173,13 +163,13 @@ namespace OHOS
         if (display_api)
         {
             int brightnessValue;
-            if(uapi_dev_runtime_get_saveele_status()) //如果是省电模式状态下退出要把亮度设置为最低
+            if (uapi_dev_runtime_get_saveele_status()) // 如果是省电模式状态下退出要把亮度设置为最低
             {
-                brightnessValue = MIN_BRIGHTNESS;//恢复到最低亮度
+                brightnessValue = MIN_BRIGHTNESS; // 恢复到最低亮度
             }
             else
             {
-                brightnessValue= ConfigModel::GetInstance()->GetBrightness();
+                brightnessValue = ConfigModel::GetInstance()->GetBrightness();
             }
             if (display_api->set_brightness(brightnessValue) != ERRCODE_SUCC)
             {
@@ -197,14 +187,10 @@ namespace OHOS
     {
         // 本地播放文件路径和状态
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RingPlayerInit start!,%s", path);
-        // std::string strSrcMusic("/music/ring");
-        // std::string tempStr("/");
-        // std::string strName = RingMusicName;
-        // uri = strSrcMusic + tempStr + strName;
         uri = path;
         // 创建 AM
         playerCtr = std::make_shared<Player>();
-        if (playerCtr.get() == nullptr)
+        if (playerCtr == nullptr || playerCtr.get() == nullptr)
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "playerCtr new fail");
             return OHOS_FAILURE;
@@ -245,8 +231,8 @@ namespace OHOS
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FindWatchRing Player url:%s", uri.c_str());
         playerCtr->SetSource(*source);
         /* --------------------------------- 4.配置播放器 -------------------------------- */
-        playerCtr->SetAudioStreamType(AUDIO_STREAM_MUSIC); // 设置播放器的音频流类型为闹钟音乐。
-        playerCtr->Prepare();                              // 准备播放器对象以播放音频。
+        playerCtr->SetAudioStreamType(AUDIO_STREAM_NOTIFICATION_SYSTEM); // 设置播放器的音频流类型,支持混音
+        playerCtr->Prepare();                                            // 准备播放器对象以播放音频。
         /* -------------------------------- 5.请求音频焦点 -------------------------------- */
         AudioManager &amIntance = AudioManager::GetInstance();
         sessionId = amIntance.MakeSessionId();
@@ -263,7 +249,7 @@ namespace OHOS
             return OHOS_FAILURE;
         }
         playerInterruptListener->SetOwner(playerCtr);
-        interrupt = {AUDIO_STREAM_MUSIC, sessionId, playerInterruptListener};
+        interrupt = {AUDIO_STREAM_NOTIFICATION_SYSTEM, sessionId, playerInterruptListener};
         // 激活音频中断 5s超时
         if (amIntance.ActivateAudioInterrupt(interrupt) == INTERRUPT_FAILED)
         {
@@ -274,6 +260,7 @@ namespace OHOS
         playerCtr->SetAudioSessionId(sessionId);
         // 播放
         playerCtr->Play();
+        playerCtr->EnableSingleLooping(true); // 设置是否循环播放
         return OHOS_SUCCESS;
     }
     /*
@@ -328,19 +315,13 @@ namespace OHOS
     {
         path_ = path;
         ScreenTurnOn(-1); // 亮屏操作
-
-        // if(true == ConfigModel::GetInstance()->GetDnotdisturb() || (uapi_sleep_mode_flag_get()))
-        // {
-        //     return;
-        // }
-
         // 将"开启查找手表铃声"任务发布到异步线程
         GraphicService::GetInstance()->PostGraphicEvent(
             std::bind(&FindWatchViewEventListener::FindWatchRingPlayStart, &FindWatchViewEventListener::GetInstance(), path_));
     }
 
     // 声明定时器变量
-    static osTimerId_t g_timer = NULL;
+    static osTimerId_t g_timer = nullptr;
     static bool findwatch_time = true;
     /*定时器到期时的处理*/
     static void FindWatch_TimerCallbackProc(int data)
@@ -364,16 +345,16 @@ namespace OHOS
     {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FindWatchViewEventListener::FindWatch_StartTimer");
         /* -------------------------- 1.检查定时器是否已经存在,如果存在则返回 ------------------------- */
-        if (g_timer != NULL)
+        if (g_timer != nullptr)
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " Timer already exists!!");
             return;
         }
 
         /* --------------------------------- 2.创建定时器 -------------------------------- */
-        g_timer = osTimerNew((osTimerFunc_t)FindWatch_TimerCallback, osTimerPeriodic, NULL, NULL);
+        g_timer = osTimerNew((osTimerFunc_t)FindWatch_TimerCallback, osTimerPeriodic, nullptr, nullptr);
         // 检查定时器创建是否成功
-        if (g_timer == NULL)
+        if (g_timer == nullptr)
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Timer create failed!!");
             return;
@@ -384,15 +365,15 @@ namespace OHOS
 
         /* --------------------------------- 4.启动定时器 -------------------------------- */
         osStatus_t ret = osTimerStart(g_timer, tick);
-        /* -------------------- 5.检查定时器启动是否成功,如果启动失败,删除定时器并置为 NULL -------------------- */
+        /* -------------------- 5.检查定时器启动是否成功,如果启动失败,删除定时器并置为 nullptr -------------------- */
         if (ret != osOK)
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "osTimerDelete failed, ret = %lx!!", ret);
-            if (g_timer != NULL)
+            if (g_timer != nullptr)
             {
                 ret = osTimerDelete(g_timer);
             }
-            g_timer = NULL;
+            g_timer = nullptr;
             return;
         }
 
@@ -403,17 +384,17 @@ namespace OHOS
     void FindWatchViewEventListener::FindWatch_StopTimer(void)
     {
         // 检查定时器是否存在
-        if (g_timer != NULL)
+        if (g_timer != nullptr)
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FindWatchViewEventListener::FindWatch_StopTimer");
             osTimerStop(g_timer);
-            // 删除定时器并置为 NULL
+            // 删除定时器并置为 nullptr
             osStatus_t ret = osTimerDelete(g_timer);
             if (ret != osOK)
             {
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "osTimerDelete failed, ret = %lx!!", ret);
             }
-            g_timer = NULL;
+            g_timer = nullptr;
         }
     }
 
@@ -472,7 +453,7 @@ namespace OHOS
 
         FindWatchViewEventListener::GetInstance().FindWatch_StartTimer(700);
         FindWatchViewEventListener::GetInstance().SetScreenBrightness();
-        
+
         NotificationManager::GetInstance()->RegisterNotifyCleanupFunction(FreeFindWatchView);
         return FindWatchGroupView;
     }
@@ -587,9 +568,9 @@ namespace OHOS
     void FindWatchRingPlayerCallbackImpl::OnPlaybackComplete(void)
     {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnPlaybackComplete");
-        FindWatchViewEventListener::GetInstance().PopInterCancelMusic();
-        const char *path = FindWatchViewEventListener::GetInstance().GetPath();
-        FindWatchViewEventListener::GetInstance().PopInterPlayMusic((path != nullptr) ? path : nullptr);
+        // FindWatchViewEventListener::GetInstance().PopInterCancelMusic();
+        // const char *path = FindWatchViewEventListener::GetInstance().GetPath();
+        // FindWatchViewEventListener::GetInstance().PopInterPlayMusic((path != nullptr) ? path : nullptr);
     }
 
     void FindWatchRingPlayerCallbackImpl::OnError(int32_t errorType, int32_t errorCode)