From 329d72f7b5ff3ae02ddd1935910be5992ef33119 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, 19 insertions(+), 3 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..8146fdb265 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,17 +687,33 @@ 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); + if (currentActiveDevice_.IsDistributedSpeaker()) { + SetOffloadVolume(STREAM_MUSIC, volumeDb, REMOTE_CLASS, currentActiveDevice_.networkId_); + } else { + SetOffloadVolume(STREAM_MUSIC, volumeDb, OFFLOAD_CLASS); + } return SUCCESS; } int32_t AudioAdapterManager::SetAppVolumeMutedDB(int32_t appUid, bool muted) { std::lock_guard lock(audioVolumeMutex_); - auto audioVolume = AudioVolume::GetInstance(); + struct VolumeValues volumes = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f}; + float volumeDb = 0.0f; + if (currentActiveDevice_.IsDistributedSpeaker()) { + volumeDb = AudioVolume::GetInstance()->GetVolume(offloadSessionID_.value(), STREAM_MUSIC, REMOTE_CLASS, &volumes); + } else { + volumeDb = AudioVolume::GetInstance()->GetVolume(offloadSessionID_.value(), STREAM_MUSIC, OFFLOAD_CLASS, &volumes); + } 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_); + AUDIO_INFO_LOG("appUid:%{public}d muted:%{public}d devicetype:%{public}d volumeDb:%{public}d isDistributedSpeaker:%{public}d", + appUid, muted, currentActiveDevice_.deviceType_, volumeDb, currentActiveDevice_.IsDistributedSpeaker()); audioVolume->SetAppVolumeMute(appUid, muted); + if (currentActiveDevice_.IsDistributedSpeaker()) { + SetOffloadVolume(STREAM_MUSIC, volumeDb, REMOTE_CLASS, currentActiveDevice_.networkId_); + } else { + SetOffloadVolume(STREAM_MUSIC, volumeDb, OFFLOAD_CLASS); + } return SUCCESS; } -- Gitee