diff --git a/services/impl/audio_source/audio_source.cpp b/services/impl/audio_source/audio_source.cpp index d5ba6eae928ac1187a90c61a24aa09994fa34db1..7f9dcad257a38642f0460710832c31616667b7a3 100644 --- a/services/impl/audio_source/audio_source.cpp +++ b/services/impl/audio_source/audio_source.cpp @@ -49,7 +49,7 @@ AudioSource::AudioSource() struct AudioAdapterDescriptor *desc = &descs[index]; for (int port = 0; (desc != nullptr && port < static_cast(desc->portNum)); port++) { if (desc->ports[port].dir == PORT_IN && - !(g_audioManager->LoadAdapter(g_audioManager, desc, &audioAdapter_))) { + !(g_audioManager->LoadAdapter(g_audioManager, desc, &audioAdapter_)) && audioAdapter_ != nullptr) { (void)audioAdapter_->InitAllPorts(audioAdapter_); if (memcpy_s(&capturePort_, sizeof(struct AudioPort), &desc->ports[port], sizeof(struct AudioPort))) {