From 1282f837f456453ca5e236a5daa50d0847f9fd3b Mon Sep 17 00:00:00 2001 From: lijiahao Date: Wed, 3 Jul 2024 20:43:14 +0800 Subject: [PATCH] update Signed-off-by: lijiahao --- .../audioeffect/src/audio_effect_chain_manager.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/frameworks/native/audioeffect/src/audio_effect_chain_manager.cpp b/frameworks/native/audioeffect/src/audio_effect_chain_manager.cpp index 872ea5dde7..98d53b60f3 100644 --- a/frameworks/native/audioeffect/src/audio_effect_chain_manager.cpp +++ b/frameworks/native/audioeffect/src/audio_effect_chain_manager.cpp @@ -64,12 +64,13 @@ static bool IsChannelLayoutHVSSupported(const uint64_t channelLayout) HVS_SUPPORTED_CHANNELLAYOUTS.end(); } -static void FindMaxSessionID(std::string &maxSessionID, std::string &sceneType, +static void FindMaxSessionID(uint32_t &maxSessionID, std::string &sceneType, const std::string &scenePairType, std::set &sessions) { for (auto& sessionID : sessions) { - if (sessionID > maxSessionID) { - maxSessionID = sessionID; + uint32_t sessionIDInt = static_cast(std::stoul(sessionID)); + if (sessionIDInt > maxSessionID) { + maxSessionID = sessionIDInt; sceneType = scenePairType; } } @@ -1061,6 +1062,7 @@ void AudioEffectChainManager::ResetEffectBuffer() { std::lock_guard lock(dynamicMutex_); for (const auto &[sceneType, effectChain] : SceneTypeToEffectChainMap_) { + if (effectChain == nullptr) continue; effectChain->InitEffectChain(); } } @@ -1095,7 +1097,7 @@ void AudioEffectChainManager::ResetInfo() void AudioEffectChainManager::UpdateRealAudioEffect() { std::lock_guard lock(dynamicMutex_); - std::string maxSessionID; + uint32_t maxSessionID = 0; std::string sceneType = ""; for (auto& scenePair : SceneTypeToSessionIDMap_) { if (!SceneTypeToSpecialEffectSet_.count(scenePair.first)) { @@ -1104,7 +1106,7 @@ void AudioEffectChainManager::UpdateRealAudioEffect() } } std::string key = sceneType + "_&_" + GetDeviceTypeName(); - if (!sceneType.empty() && SceneTypeToEffectChainMap_.count(key)) { + if (!sceneType.empty() && SceneTypeToEffectChainMap_[key] != nullptr) { std::shared_ptr audioEffectChain = SceneTypeToEffectChainMap_[key]; AudioEffectScene currSceneType; UpdateCurrSceneType(currSceneType, sceneType); -- Gitee