From a65c72c2747f41168908900a42ce2ce733baf487 Mon Sep 17 00:00:00 2001 From: wangqingsong21 Date: Sat, 30 Aug 2025 12:07:41 +0800 Subject: [PATCH] bugfix: SetDefaultOutputDevice only clear force select for communication Signed-off-by: wangqingsong21 --- .../service/service_main/src/audio_core_service_private.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/audio_policy/server/service/service_main/src/audio_core_service_private.cpp b/services/audio_policy/server/service/service_main/src/audio_core_service_private.cpp index 2537820324..244843c365 100644 --- a/services/audio_policy/server/service/service_main/src/audio_core_service_private.cpp +++ b/services/audio_policy/server/service/service_main/src/audio_core_service_private.cpp @@ -2070,7 +2070,10 @@ int32_t AudioCoreService::SetDefaultOutputDevice(const DeviceType deviceType, co streamCollector_.GetCurrentRendererChangeInfos(audioRendererChangeInfos); bool forceFetch = false; for (auto &changeInfo : audioRendererChangeInfos) { - if (changeInfo->sessionId == static_cast(sessionID)) { + if (changeInfo->sessionId == static_cast(sessionID) && + (changeInfo->rendererInfo.streamUsage == STREAM_USAGE_VOICE_COMMUNICATION || + changeInfo->rendererInfo.streamUsage == STREAM_USAGE_VIDEO_COMMUNICATION || + changeInfo->rendererInfo.streamUsage == STREAM_USAGE_VOICE_MODEM_COMMUNICATION)) { CHECK_AND_CONTINUE(!skipForce); AudioPolicyUtils::GetInstance().SetPreferredDevice(AUDIO_CALL_RENDER, std::make_shared(), changeInfo->clientUID, "SetDefaultOutputDevice"); -- Gitee