电话音频优化 1211/4
authorhcj <1224667075@qq.com>
Fri, 18 Oct 2024 11:12:50 +0000 (19:12 +0800)
committerhcj <1224667075@qq.com>
Fri, 18 Oct 2024 11:12:50 +0000 (19:12 +0800)
code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp
code/sdk/drivers/peripheral/slip/cat1Service/cat1_ctl.cpp
code/sdk/drivers/peripheral/slip/cat1Service/cat1_server.cpp

index fd522a3..d6e3f46 100644 (file)
@@ -643,17 +643,11 @@ static void ScoConnectPro(void)
     if(OHOS::CallerLogModel::GetInstance()->GetCallSource() == OHOS::CallerLogModel::CallSourceCat1
     && OHOS::NotificationManager::GetInstance()->GetWatchCallStatus())
     {
+
         return;
     }
+   
 
-    // if(OHOS::CallerLogModel::GetInstance()->GetCallDial() == OHOS::CallerLogModel::HFP_PHONE_DIAL)
-    // {
-    //     return;
-    // }
-    // else
-    // {
-    //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "手表拨号");
-    // }
     
 
     ScoStatusCb(HFP_SCO_STATE_CONNECTED);
@@ -662,8 +656,8 @@ static void ScoConnectPro(void)
         hfp_hf_calls_info_t call = {0};
         HfpIncomingEventPublish(TOPIC_EVENT_HFP_PHONE_TO_WATCH, call);
     }
-
-    PostGraphicEvent(AudioSetup);
+     PostGraphicEvent(AudioSetup);
+   
     WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "[ScoConnectPro] audioState:%d", g_audioState);
 }
 
@@ -675,14 +669,11 @@ static void ScoDisconnectPro(void)
     if(OHOS::CallerLogModel::GetInstance()->GetCallSource() == OHOS::CallerLogModel::CallSourceCat1
     && OHOS::NotificationManager::GetInstance()->GetWatchCallStatus())
     {
+        AudioRelease(); // 为了保持时序,此处采取同步调用
+        usleep(5000); // 增加延时确保SCO断开AUDIO通路释放成功
         return;
     }
 
-    // if(OHOS::CallerLogModel::GetInstance()->GetCallDial() == OHOS::CallerLogModel::HFP_PHONE_DIAL)
-    // {
-    //     return;
-    // }
-
     ScoStatusCb(HFP_SCO_STATE_DISCONNECTED);
     if ((g_currCallState == HFP_HF_CALL_STATE_ACTIVE && g_scoFlag == HFP_SCO_STATE_DISCONNECTED) ||
         (g_scoFlag == HFP_SCO_STATE_CONNECT_FAILURE)) {
index 01a3830..122c805 100644 (file)
@@ -83,10 +83,13 @@ int32_t uapi_cat1_start_volte_voice(void)
     int32_t ret = ERRCODE_FAIL;
     int32_t argc = 1;
     uint8_t *argv = (uint8_t *)"start";
-
-    ret = VoiceCallVolteSample(argc, (const char **)&argv);
-    if(ret==0) 
-    cat1_voice=1;
+    if(cat1_voice!=1)
+    {
+        ret = VoiceCallVolteSample(argc, (const char **)&argv);
+        if(ret==0) 
+        cat1_voice=1;
+    }
+ 
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"ret %d %d ",ret, cat1_voice);
     
     return ret;   
@@ -101,9 +104,12 @@ int32_t uapi_cat1_stop_volte_voice(void)
     int32_t argc = 1;
     uint8_t *argv = (uint8_t *)"stop";
 
-    ret = VoiceCallVolteSample(argc, (const char **)&argv);
-    if(ret==0) 
-    cat1_voice=0;
+    if(cat1_voice!=0)
+    {
+        ret = VoiceCallVolteSample(argc, (const char **)&argv);
+        if(ret==0) 
+        cat1_voice=0;
+    }
 
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"ret %d %d ",ret, cat1_voice);
 
index df9c7fe..9ba6cc1 100644 (file)
@@ -806,7 +806,7 @@ void cat1_call_dial(char* phonenum)
 {
     bool volte = OHOS::ConfigModel::GetInstance()->GetVoLTE_Call();
     if (volte == true){
-         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"cat1_call_dial\n");
+         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"cat1_call_dial %s\n",phonenum);
         udp_send_msg_toCat1(UDP_CMD_DIAL_NUMB,phonenum);
     }