From 76780cbf30c7554f420525fc3839b5930600313b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E4=BE=9D=E5=96=A7?= Date: Thu, 11 Sep 2025 17:10:50 +0800 Subject: [PATCH] setOffloadQue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 彭依喧 --- .../volume/src/audio_adapter_manager.cpp | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/services/audio_policy/server/domain/volume/src/audio_adapter_manager.cpp b/services/audio_policy/server/domain/volume/src/audio_adapter_manager.cpp index 44e41f3092..df4ad5a3eb 100644 --- a/services/audio_policy/server/domain/volume/src/audio_adapter_manager.cpp +++ b/services/audio_policy/server/domain/volume/src/audio_adapter_manager.cpp @@ -687,6 +687,15 @@ int32_t AudioAdapterManager::SetAppVolumeDb(int32_t appUid) AUDIO_INFO_LOG("volumeDb:%{public}f volume:%{public}d devicetype:%{public}d", volumeDb, volumeLevel, currentActiveDevice_.deviceType_); SetAppAudioVolume(appUid, volumeDb); + struct VolumeValues volumes = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f}; + float totalVolume = 0.0f; + if (currentActiveDevice_.IsDistributedSpeaker()) { + totalVolume = audioVolume->GetVolume(offloadSessionID_.value(), STREAM_MUSIC, REMOTE_CLASS, &volumes); + SetOffloadVolume(STREAM_MUSIC, totalVolume, REMOTE_CLASS, currentActiveDevice_.networkId_); + } else { + totalVolume = audioVolume->GetVolume(offloadSessionID_.value(), STREAM_MUSIC, OFFLOAD_CLASS, &volumes); + SetOffloadVolume(STREAM_MUSIC, totalVolume, OFFLOAD_CLASS); + } return SUCCESS; } @@ -695,8 +704,17 @@ int32_t AudioAdapterManager::SetAppVolumeMutedDB(int32_t appUid, bool muted) std::lock_guard lock(audioVolumeMutex_); auto audioVolume = AudioVolume::GetInstance(); CHECK_AND_RETURN_RET_LOG(audioVolume != nullptr, ERR_INVALID_PARAM, "audioVolume handle null"); - AUDIO_INFO_LOG("appUid:%{public}d muted:%{public}d devicetype:%{public}d", - appUid, muted, currentActiveDevice_.deviceType_); + struct VolumeValues volumes = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f}; + float volumeDb = 0.0f; + if (currentActiveDevice_.IsDistributedSpeaker()) { + volumeDb = audioVolume->GetVolume(offloadSessionID_.value(), STREAM_MUSIC, REMOTE_CLASS, &volumes); + SetOffloadVolume(STREAM_MUSIC, volumeDb, REMOTE_CLASS, currentActiveDevice_.networkId_); + } else { + volumeDb = audioVolume->GetVolume(offloadSessionID_.value(), STREAM_MUSIC, OFFLOAD_CLASS, &volumes); + SetOffloadVolume(STREAM_MUSIC, volumeDb, OFFLOAD_CLASS); + } + AUDIO_INFO_LOG("appUid:%{public}d muted:%{public}d devicetype:%{public}d volumeDb:%{public}f isDs:%{public}d", + appUid, muted, currentActiveDevice_.deviceType_, volumeDb, currentActiveDevice_.IsDistributedSpeaker()); audioVolume->SetAppVolumeMute(appUid, muted); return SUCCESS; } -- Gitee