From 6a26d5954cd9eff8d5bd7fc2c64c1ee103dd0ec5 Mon Sep 17 00:00:00 2001 From: linyuanpeng Date: Sat, 13 Jul 2024 19:24:29 +0800 Subject: [PATCH] for vivid bug Signed-off-by: linyuanpeng --- .../audioeffect/src/audio_effect_chain_manager.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/frameworks/native/audioeffect/src/audio_effect_chain_manager.cpp b/frameworks/native/audioeffect/src/audio_effect_chain_manager.cpp index 9965eafec2..856982d96c 100644 --- a/frameworks/native/audioeffect/src/audio_effect_chain_manager.cpp +++ b/frameworks/native/audioeffect/src/audio_effect_chain_manager.cpp @@ -316,7 +316,16 @@ int32_t AudioEffectChainManager::CreateAudioEffectChainDynamic(const std::string std::shared_ptr audioEffectChain = nullptr; std::string sceneTypeAndDeviceKey = sceneType + "_&_" + GetDeviceTypeName(); std::string commonSceneTypeAndDeviceKey = COMMON_SCENE_TYPE + "_&_" + GetDeviceTypeName(); - if (SceneTypeToEffectChainMap_.count(sceneTypeAndDeviceKey)) { + + if ((sceneType == COMMON_SCENE_TYPE) && isCommonEffectChainExisted_) { + if (SceneTypeToEffectChainMap_.count(sceneTypeAndDeviceKey) && + SceneTypeToEffectChainCountMap_.count(sceneTypeAndDeviceKey) && + SceneTypeToEffectChainCountMap_[sceneTypeAndDeviceKey] >= 1) { + ChangeEffectChainCountMapForCreate(sceneType); + return SUCCESS; + } + AUDIO_DEBUG_LOG("Current type is common type, and no need to check exist."); + } else if (SceneTypeToEffectChainMap_.count(sceneTypeAndDeviceKey)) { if (!SceneTypeToEffectChainCountMap_.count(sceneTypeAndDeviceKey) || SceneTypeToEffectChainCountMap_[sceneTypeAndDeviceKey] < 1) { EraseEffectChainSetAndMapForCreate(sceneType); -- Gitee