diff --git a/services/audiomanager/managersource/src/daudio_source_dev.cpp b/services/audiomanager/managersource/src/daudio_source_dev.cpp index 7ffc2a94623a1b06cae9b0f81d1c21970140169f..338c1ba75b37250ded846d76acfaeb943babc34b 100644 --- a/services/audiomanager/managersource/src/daudio_source_dev.cpp +++ b/services/audiomanager/managersource/src/daudio_source_dev.cpp @@ -745,12 +745,13 @@ int32_t DAudioSourceDev::TaskDisableDAudio(const std::string &args) if (args.length() > DAUDIO_MAX_JSON_LEN || args.empty()) { return ERR_DH_AUDIO_SA_PARAM_INVALID; } - cJSON *jParam = cJSON_Parse(args.c_str()); - CHECK_NULL_RETURN(jParam, ERR_DH_AUDIO_NULLPTR); + int32_t dhId = ParseDhidFromEvent(args); - CHECK_AND_FREE_RETURN_RET_LOG(dhId == ERR_DH_AUDIO_FAILED, ERR_DH_AUDIO_NULLPTR, jParam, - "%{public}s", "Parse dhId error."); - cJSON_Delete(jParam); + if (dhId == ERR_DH_AUDIO_FAILED) { + DHLOGE("Parse dhId error. hdId: %{public}d.", dhId); + return ERR_DH_AUDIO_NULLPTR; + } + DHLOGI("Parsed dhId = %{public}d", dhId); switch (GetDevTypeByDHId(dhId)) { case AUDIO_DEVICE_TYPE_SPEAKER: diff --git a/services/test_example/distributedaudiotest.cpp b/services/test_example/distributedaudiotest.cpp index db1833c98bba72a6655de7f90e98d13d850508d5..98e7689281e58c2a51c3e10919256fa4e515ae4f 100644 --- a/services/test_example/distributedaudiotest.cpp +++ b/services/test_example/distributedaudiotest.cpp @@ -288,6 +288,9 @@ static void OpenSpk(const std::string &devId) } g_callbackStub = new AudioParamCallbackImpl(); + if (g_adapter == nullptr) { + return; + } int32_t ret = g_adapter->RegExtraParamObserver(g_callbackStub, 0); if (ret != DH_SUCCESS) { std::cout << "Register observer failed, ret: " << ret << std::endl; @@ -442,12 +445,18 @@ static void CloseSpk() StopRender(); } + if (g_adapter == nullptr) { + return; + } int32_t ret = g_adapter->DestroyRender(g_renderId); if (ret != DH_SUCCESS) { std::cout << "Close speaker failed" << std::endl; return; } if (g_micStatus == DeviceStatus::DEVICE_IDLE) { + if (g_manager == nullptr) { + return; + } g_manager->UnloadAdapter(g_devId); g_adapter = nullptr; } @@ -512,6 +521,9 @@ static void OpenMic(const std::string &devId) captureAttr.channelCount = CAPTURE_CHANNEL_MASK; captureAttr.sampleRate = AUDIO_SAMPLE_RATE; captureAttr.format = AudioFormat::AUDIO_FORMAT_TYPE_PCM_16_BIT; + if (g_adapter == nullptr) { + return; + } int32_t ret = g_adapter->CreateCapture(captureDesc, captureAttr, g_capture, g_captureId); if (ret != DH_SUCCESS || g_capture == nullptr) { std::cout << "Open MIC device failed." << std::endl; @@ -628,12 +640,18 @@ static void CloseMic() StopCapture(); } + if (g_adapter == nullptr) { + return; + } int32_t ret = g_adapter->DestroyCapture(g_captureId); if (ret != DH_SUCCESS) { std::cout << "Close mic failed." << std::endl; return; } if (g_spkStatus == DeviceStatus::DEVICE_IDLE) { + if (g_manager == nullptr) { + return; + } g_manager->UnloadAdapter(g_devId); g_adapter = nullptr; } @@ -661,6 +679,9 @@ static void SetVolume() AudioExtParamKey key = AudioExtParamKey::AUDIO_EXT_PARAM_KEY_VOLUME; std::string condition = "EVENT_TYPE=1;VOLUME_GROUP_ID=1;AUDIO_VOLUME_TYPE=1;"; std::string volStr = std::to_string(volInt); + if (g_adapter == nullptr) { + return; + } int32_t ret = g_adapter->SetExtraParams(key, condition, volStr); if (ret != DH_SUCCESS) { std::cout << "Set volume failed" << std::endl; @@ -676,6 +697,9 @@ static void GetVolume() AudioExtParamKey key = AudioExtParamKey::AUDIO_EXT_PARAM_KEY_VOLUME; std::string condition = "EVENT_TYPE=1;VOLUME_GROUP_ID=1;AUDIO_VOLUME_TYPE=1;"; std::string vol; + if (g_adapter == nullptr) { + return; + } int32_t ret = g_adapter->GetExtraParams(key, condition.c_str(), vol); if (ret != DH_SUCCESS) { std::cout << "Get Volume failed." << std::endl;