From 7ba6c5907ca95d08d135179f1d916cdb2cc53023 Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Tue, 17 Dec 2024 18:46:53 +0800 Subject: [PATCH] =?utf8?q?=E4=BC=98=E5=8C=96=E4=BA=86=E6=89=8B=E8=A1=A8?= =?utf8?q?=E4=B8=8E=E8=93=9D=E7=89=99=E8=80=B3=E6=9C=BA=E8=BF=9E=E6=8E=A5?= =?utf8?q?=E5=90=8E=E6=9C=AC=E5=9C=B0=E9=9F=B3=E4=B9=90=E6=92=AD=E6=94=BE?= =?utf8?q?=E5=99=A8=E5=A3=B0=E9=9F=B3=E8=BF=9B=E5=BA=A6=E6=9D=A10-40?= =?utf8?q?=E8=8C=83=E5=9B=B4=E5=86=85=E8=80=B3=E6=9C=BA=E5=9F=BA=E6=9C=AC?= =?utf8?q?=E6=B2=A1=E6=9C=89=E5=A3=B0=E9=9F=B3=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../main/src/VolumeSettingPresenter.cpp | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 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 16776df27..852586a0a 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/VolumeSettingPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/VolumeSettingPresenter.cpp @@ -20,6 +20,7 @@ #include "bts_avrcp_controller.h" #include "ConfigModel.h" #include "vibrator_service.h" +#include namespace OHOS { @@ -131,20 +132,29 @@ void VolumeSliderEventListener::ChangeVolume(VolumeChangeStatus status) //蓝牙耳机音量映射 (40 - 127) static int mapVolume(int volume) { - if (volume < 0) - return 40; - else if (volume > 100) - return 127; + // 音量映射 + if(volume <= 0) + return AVRCP_ABSOLUTE_VOLUME_PERCENTAGE_0; + else if (volume >= 100) + return AVRCP_ABSOLUTE_VOLUME_PERCENTAGE_100; + else if (volume > 0 && volume <= 10) + return (10 * AVRCP_ABSOLUTE_VOLUME_PERCENTAGE_100) / 100; + else if (volume > 10 && volume <= 20) + return (20 * AVRCP_ABSOLUTE_VOLUME_PERCENTAGE_100) / 100; + else if (volume > 20 && volume <= 30) + return (30 * AVRCP_ABSOLUTE_VOLUME_PERCENTAGE_100) / 100; + else if (volume > 30 && volume <= 40) + return (40 * AVRCP_ABSOLUTE_VOLUME_PERCENTAGE_100) / 100; else - return 40 + (int)((double)(volume / 100.0) * (127 - 40)); + return volume * AVRCP_ABSOLUTE_VOLUME_PERCENTAGE_100 / 100; } extern BtAvrcpTgInf g_avrcp_srv_inf; void VolumeSliderEventListener::BtAndLocalVolumeSet(int16_t sounding) { if (g_avrcp_srv_inf.avrcp_srv_conn_stat == PROFILE_STATE_CONNECTED) { - uint8_t volume = sounding * AVRCP_ABSOLUTE_VOLUME_PERCENTAGE_100 / 100; // 100:本地音量最大值 - // uint8_t volume = mapVolume(sounding); + // uint8_t volume = sounding * AVRCP_ABSOLUTE_VOLUME_PERCENTAGE_100 / 100; // 100:本地音量最大值 + uint8_t volume = mapVolume(sounding); WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "手表音量设置同步远端BT音量 %d", volume); (void)avrcp_ct_set_absolute_volume(&(g_avrcp_srv_inf.bd_addr), volume); // 手表音量设置同步远端BT音量 } @@ -156,7 +166,8 @@ void VolumeSliderEventListener::BtAndLocalVolumeSet(int16_t sounding) } /* -------------------------------------------------------------------------- */ WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "audio volume = %d", sounding); - AudioManager::GetInstance().SetVolume(AUDIO_STREAM_MUSIC, sounding); // 本地音量设置 + // AudioManager::GetInstance().SetVolume(AUDIO_STREAM_MUSIC, sounding); // 本地音量设置 + uapi_systemVolumeSet(sounding);//本地音量设置 } void VolumeSliderEventListener::OnRelease(int32_t value) -- 2.17.1