From: luozheng <1732036298@qq.com> Date: Sat, 18 Jan 2025 02:44:02 +0000 (+0800) Subject: 优化录音播放函数,增加条件判断提高代码健壮 X-Git-Tag: v1.3.113-repair_tp~23^2~5 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=refs%2Fchanges%2F1634%2F2;p=mirrors%2FFD230.git 优化录音播放函数,增加条件判断提高代码健壮 --- diff --git a/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingModel.cpp index dd797c0e7..9b578e267 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingModel.cpp @@ -246,6 +246,12 @@ namespace OHOS // 设置回调函数 PlayerCtr->SetPlayerCallback(PlayerCallback); + // 添加条件判断,确保uri必须为MP3格式 + if (Uri.find(".mp3") == std::string::npos) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Invalid file format. Only MP3 files are supported."); + return OHOS_FAILURE; + } // 申请资源 Resource = std::make_shared(Uri, Header); if (Resource.get() == nullptr) @@ -253,9 +259,21 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Resource new fail"); return OHOS_FAILURE; } - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Player uri %s.", Uri.c_str()); - PlayerCtr->SetSource(*Resource); - PlayerCtr->Prepare(); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Player uri %s.", Uri.c_str()); + ret = PlayerCtr->SetSource(*Resource); + if (ret != 0) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetSource fail"); + PlayerCtr->Reset(); + return OHOS_FAILURE; + } + ret = PlayerCtr->Prepare(); + if (ret != 0) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Prepare fail"); + PlayerCtr->Reset(); + return OHOS_FAILURE; + } ret = PlayerCtr->GetDuration(DurationTime); ConvertMillisecondToTime(DurationTime); WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[%s,%d] GetDuration:%lld,%s, ret:%d", __func__, __LINE__, DurationTime, TotalRecordDuration.c_str(), ret); @@ -287,7 +305,13 @@ namespace OHOS } IsActivateAudioInterrupt = true; } - PlayerCtr->SetAudioSessionId(SessionId); + ret = PlayerCtr->SetAudioSessionId(SessionId); + if (ret != 0) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetAudioSessionId faild"); + PlayerCtr->Reset(); + return OHOS_FAILURE; + } // 播放 ret = PlayerCtr->Play(); if (ret != 0)