diff --git a/frameworks/native/audioadapter/include/pulse_audio_service_adapter_impl.h b/frameworks/native/audioadapter/include/pulse_audio_service_adapter_impl.h index 3295b601e92899ce6dc7b2b9e22c4559c11fe8c2..a5ca533ce99c2b2f07a6ef814eb16633d9ea3e32 100644 --- a/frameworks/native/audioadapter/include/pulse_audio_service_adapter_impl.h +++ b/frameworks/native/audioadapter/include/pulse_audio_service_adapter_impl.h @@ -94,6 +94,7 @@ private: static std::unordered_map sourceIndexSessionIDMap; std::mutex mMutex; bool isSetDefaultSink_ = false; + bool isSetDefaultSource_ = false; }; } // namespace AudioStandard } // namespace OHOS diff --git a/frameworks/native/audioadapter/src/pulse_audio_service_adapter_impl.cpp b/frameworks/native/audioadapter/src/pulse_audio_service_adapter_impl.cpp index 1183b242a05088056144053a249020bdc2fa0d09..41a66f32dfddee0a5f166d92b7338a799291ba68 100644 --- a/frameworks/native/audioadapter/src/pulse_audio_service_adapter_impl.cpp +++ b/frameworks/native/audioadapter/src/pulse_audio_service_adapter_impl.cpp @@ -271,6 +271,7 @@ int32_t PulseAudioServiceAdapterImpl::SetDefaultSource(string name) pa_threaded_mainloop_unlock(mMainLoop); return ERR_OPERATION_FAILED; } + isSetDefaultSource_ = true; pa_operation_unref(operation); pa_threaded_mainloop_unlock(mMainLoop); @@ -672,6 +673,11 @@ vector PulseAudioServiceAdapterImpl::GetAllSourceOutputs() return userData->sourceOutputList; } + if (!isSetDefaultSource_) { + AUDIO_ERR_LOG("[PulseAudioServiceAdapterImpl] default source has not been set."); + return userData->sourceOutputList; + } + pa_threaded_mainloop_lock(mMainLoop); pa_operation *operation = pa_context_get_source_output_info_list(mContext,