From 9e9394ad8a2436f4017cfd0558d2b253575b893a Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Mon, 2 Dec 2024 17:18:46 +0800 Subject: [PATCH] =?utf8?q?=E8=A7=A3=E5=86=B3#1208=EF=BC=8C=E6=AF=8F?= =?utf8?q?=E6=AC=A1=E6=8E=A5=E7=94=B5=E8=AF=9D=E9=80=9A=E8=AF=9D=E9=9F=B3?= =?utf8?q?=E9=87=8F=E9=83=BD=E4=B8=8D=E4=B8=80=E8=87=B4bug,=E4=BC=98?= =?utf8?q?=E5=8C=96=E4=BA=86=E9=9F=B3=E9=87=8F=E8=BF=9B=E5=BA=A6=E6=9D=A1?= =?utf8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../main/src/VolumeSettingPresenter.cpp | 4 +- .../phoneservice/src/PhoneService.cpp | 58 ++++++++++++++----- .../audiomanager/cpp/audio_manager.cpp | 4 +- 3 files changed, 48 insertions(+), 18 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/VolumeSettingPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/VolumeSettingPresenter.cpp index 5f36427da..16776df27 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/VolumeSettingPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/VolumeSettingPresenter.cpp @@ -123,8 +123,8 @@ void VolumeSliderEventListener::ChangeVolume(VolumeChangeStatus status) BtAndLocalVolumeSet(volumeSettingView->sounding); /*蓝牙耳机音乐调节*/ } if (playerCoefficients == VOLUMEPHONE || playerCoefficients == VOLUMEPHONENOTIFY) { - unsigned char volumeValue = (unsigned char) ((double) (volumeSettingView->sounding * CALL_VOLUME_MAX) / (VOLUME_MAX - VOLUME_MIN)); // 音量转换 - SetSpeakerVolume(volumeValue); + // unsigned char volumeValue = (unsigned char) ((double) (volumeSettingView->sounding * CALL_VOLUME_MAX) / (VOLUME_MAX - VOLUME_MIN)); // 音量转换 + SetSpeakerVolume((unsigned char)volumeSettingView->sounding); } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp b/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp index a9ca82338..8e2f5ad59 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/phoneservice/src/PhoneService.cpp @@ -40,6 +40,7 @@ #include "ConfigModelC.h" #include "cat1_ctl.h" #include "UiConfig.h" +#include "cmath" #ifdef __cplusplus extern "C" { #endif @@ -156,7 +157,7 @@ static void AudioDeactInterrupt(AudioStreamType type) if ((type == AUDIO_STREAM_VOICE_CALL_BT_SCO && g_audioState >= AUDIO_ACT_INTERRUPT_BT_SCO) || (type == AUDIO_STREAM_RING && g_audioState == AUDIO_ACT_INTERRUPT_WATCH_RING) - || type ==AUDIO_STREAM_VOICE_CALL_VOLTE && g_audioState >= AUDIO_STREAM_VOICE_CALL_VOLTE ) { + || (type ==AUDIO_STREAM_VOICE_CALL_VOLTE && g_audioState >= AUDIO_STREAM_VOICE_CALL_VOLTE) ) { (void)PhoneAudioManagerDeactInterrupt(); } } @@ -2041,36 +2042,65 @@ void SetSpeakerVolume(unsigned char hfpVolume) { if(OHOS::CallerLogModel::GetInstance()->GetCallSource() == OHOS::CallerLogModel::CallSourceCat1) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[SetSpeakerVolume] start, CallSourceCat1:%d", hfpVolume); - int32_t minVolume = PhoneAudioGetCAT1MinVolume(); - int32_t maxVolume = PhoneAudioGetCAT1MAXVolume(); - int32_t volume = hfpVolume * (maxVolume - minVolume)/ CALL_VOLUME_MAX;// 转换 - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[SetSpeakerVolume] minVolume:%d, maxVolume:%d, volume:%d", - minVolume, maxVolume, volume); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[SetSpeakerVolume] start, CallSourceCat1:4G音量调节传入%d", hfpVolume); + // int32_t minVolume = PhoneAudioGetCAT1MinVolume(); + // int32_t maxVolume = PhoneAudioGetCAT1MAXVolume(); + // int32_t volume = hfpVolume * (maxVolume - minVolume)/ CALL_VOLUME_MAX;// 转换 + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[SetSpeakerVolume] minVolume:%d, maxVolume:%d, G音量调节映射后volume:%d", + // minVolume, maxVolume, volume); + + // int32_t ret = PhoneCATAudioSetVolume(volume); + // if (!ret) { + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[SetSpeakerVolume] PhoneAudioSetVolume ret:%d", ret); + // return; + // } + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[SetSpeakerVolume] success!"); + //4G 音量调节传入0~100不需要映射 + int32_t volume = hfpVolume; int32_t ret = PhoneCATAudioSetVolume(volume); if (!ret) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[SetSpeakerVolume] PhoneAudioSetVolume ret:%d", ret); return; } - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[SetSpeakerVolume] success!"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[SetSpeakerVolume] success!"); } else { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[SetSpeakerVolume] start, hfpVolume:%d", hfpVolume); + // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[SetSpeakerVolume] start, hfpVolume:%d", hfpVolume); + // int32_t minVolume = PhoneAudioGetMinVolume(); + // int32_t maxVolume = PhoneAudioGetMaxVolume(); + // int32_t volume = hfpVolume * (maxVolume - minVolume) / CALL_VOLUME_MAX; // 转换 + // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[SetSpeakerVolume] minVolume:%d, maxVolume:%d, volume:%d", + // minVolume, maxVolume, volume); + + // int32_t ret = PhoneAudioSetVolume(volume); + // if (!ret) { + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[SetSpeakerVolume] PhoneAudioSetVolume ret:%d", ret); + // return; + // } + + // ret = hfp_hf_set_volume(&g_bdAddr, HFP_VOLUME_SPEAKER, hfpVolume); + // if (ret != ERRCODE_BT_SUCCESS) { + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[SetSpeakerVolume] set_volume ret:%d, hfpVolume:%d", + // ret, hfpVolume); + // return; + // } + // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[SetSpeakerVolume] success!"); + + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[SetSpeakerVolume] start, hfpVolume:蓝牙音量调节传入%d", hfpVolume); int32_t minVolume = PhoneAudioGetMinVolume(); int32_t maxVolume = PhoneAudioGetMaxVolume(); - int32_t volume = hfpVolume * (maxVolume - minVolume) / CALL_VOLUME_MAX; // 转换 - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[SetSpeakerVolume] minVolume:%d, maxVolume:%d, volume:%d", - minVolume, maxVolume, volume); + unsigned char volumeValue = (unsigned char) round(((double) (hfpVolume * CALL_VOLUME_MAX) / (maxVolume - minVolume))); // 音量转换 + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[SetSpeakerVolume] minVolume:%d, maxVolume:%d, 蓝牙音量调节映射后volume:%d",minVolume,maxVolume, volumeValue); - int32_t ret = PhoneAudioSetVolume(volume); + int32_t ret = PhoneAudioSetVolume(hfpVolume); if (!ret) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[SetSpeakerVolume] PhoneAudioSetVolume ret:%d", ret); return; } - ret = hfp_hf_set_volume(&g_bdAddr, HFP_VOLUME_SPEAKER, hfpVolume); + ret = hfp_hf_set_volume(&g_bdAddr, HFP_VOLUME_SPEAKER, volumeValue); if (ret != ERRCODE_BT_SUCCESS) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[SetSpeakerVolume] set_volume ret:%d, hfpVolume:%d", ret, hfpVolume); diff --git a/code/sdk/middleware/services/media/foundation/audiomanager/frameworks/audiomanager/cpp/audio_manager.cpp b/code/sdk/middleware/services/media/foundation/audiomanager/frameworks/audiomanager/cpp/audio_manager.cpp index 39978a0df..cc70e95c5 100755 --- a/code/sdk/middleware/services/media/foundation/audiomanager/frameworks/audiomanager/cpp/audio_manager.cpp +++ b/code/sdk/middleware/services/media/foundation/audiomanager/frameworks/audiomanager/cpp/audio_manager.cpp @@ -63,7 +63,7 @@ bool AudioManager::SetVolume(AudioStreamType streamType, int32_t volume) else if(volume > 100) volume = 100; else - volume = 30 + (volume - 1) * 70 / 99; + volume = 30 + (int)((volume - 1) * 70.0 / 99.0 + 0.5); } return impl_->SetVolume(streamType, volume); } @@ -90,7 +90,7 @@ int32_t AudioManager::GetVolume(AudioStreamType streamType) else if(volume > 100) return 100; else - return ((volume - 30) * 99 / 70) + 1; + return ((volume - 30) * 99.0 / 70.0) + 1.5; } else -- 2.17.1