From c1370fdaf377e1ee2ea9767ea8fcc751144910c5 Mon Sep 17 00:00:00 2001 From: huyue57 Date: Fri, 8 Mar 2024 09:39:09 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=80=9A=E8=AF=9D=E8=BF=87?= =?UTF-8?q?=E7=A8=8B=E4=B8=AD=E4=BE=9D=E6=AC=A1=E8=BF=9E=E6=8E=A5=E5=A4=9A?= =?UTF-8?q?=E4=B8=AA=E8=93=9D=E7=89=99=EF=BC=8C=E6=96=AD=E5=BC=80=E5=90=8E?= =?UTF-8?q?=E5=85=A5=E8=93=9D=E7=89=99=E8=AE=BE=E5=A4=87=E5=90=8E=EF=BC=8C?= =?UTF-8?q?=E5=A3=B0=E9=9F=B3=E4=B8=8D=E4=BB=8E=E5=85=B6=E4=BB=96=E8=93=9D?= =?UTF-8?q?=E7=89=99=E8=80=B3=E6=9C=BA=E8=80=8C=E6=98=AF=E5=90=AC=E7=AD=92?= =?UTF-8?q?=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: huyue57 Change-Id: Ic1bfc0d44e59ffabf09136cabf5e574b9d2a6aa6 --- .../server/src/service/audio_policy_service.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/services/audio_policy/server/src/service/audio_policy_service.cpp b/services/audio_policy/server/src/service/audio_policy_service.cpp index 870ccdab4b..227f125d0f 100644 --- a/services/audio_policy/server/src/service/audio_policy_service.cpp +++ b/services/audio_policy/server/src/service/audio_policy_service.cpp @@ -893,9 +893,7 @@ int32_t AudioPolicyService::SelectOutputDevice(sptr audioRe std::string networkId = audioDeviceDescriptors[0]->networkId_; DeviceType deviceType = audioDeviceDescriptors[0]->deviceType_; FetchDevice(true, AudioStreamDeviceChangeReason::OVERRODE); - if (audioDeviceDescriptors[0]->deviceType_ != DEVICE_TYPE_BLUETOOTH_SCO) { - FetchDevice(false); - } + FetchDevice(false); if ((deviceType != DEVICE_TYPE_BLUETOOTH_A2DP) || (networkId != LOCAL_NETWORK_ID)) { UpdateOffloadWhenActiveDeviceSwitchFromA2dp(); } else { @@ -1725,7 +1723,7 @@ int32_t AudioPolicyService::HandleScoOutputDeviceFetched(unique_ptrconnectState_ == DEACTIVE_CONNECTED) { Bluetooth::AudioHfpManager::ConnectScoWithAudioScene(audioScene_); - return ERROR; + return SUCCESS; } #endif return SUCCESS; @@ -1776,7 +1774,7 @@ void AudioPolicyService::FetchOutputDevice(vector desc = audioRouterCenter_.FetchOutputDevice( rendererChangeInfo->rendererInfo.streamUsage, rendererChangeInfo->clientUID); if (desc->deviceType_ == DEVICE_TYPE_NONE || (IsSameDevice(desc, rendererChangeInfo->outputDeviceInfo) && - !NeedRehandleA2DPDevice(desc) && !sameDeviceSwitchFlag_)) { + !NeedRehandleA2DPDevice(desc) && desc->connectState_ != DEACTIVE_CONNECTED && !sameDeviceSwitchFlag_)) { AUDIO_INFO_LOG("stream %{public}d device not change, no need move device", rendererChangeInfo->sessionId); continue; } @@ -1871,7 +1869,7 @@ int32_t AudioPolicyService::HandleScoInputDeviceFetched(unique_ptrconnectState_ == DEACTIVE_CONNECTED) { Bluetooth::AudioHfpManager::ConnectScoWithAudioScene(audioScene_); - return ERROR; + return SUCCESS; } #endif return SUCCESS; @@ -1895,7 +1893,8 @@ void AudioPolicyService::FetchInputDevice(vector desc = audioRouterCenter_.FetchInputDevice(sourceType, capturerChangeInfo->clientUID); DeviceInfo inputDeviceInfo = capturerChangeInfo->inputDeviceInfo; - if (desc->deviceType_ == DEVICE_TYPE_NONE || IsSameDevice(desc, inputDeviceInfo)) { + if (desc->deviceType_ == DEVICE_TYPE_NONE || + (IsSameDevice(desc, inputDeviceInfo) && desc->connectState_ != DEACTIVE_CONNECTED)) { AUDIO_INFO_LOG("stream %{public}d device not change, no need move device", capturerChangeInfo->sessionId); continue; } -- Gitee