From: luozheng <1732036298@qq.com> Date: Fri, 17 Jan 2025 04:01:37 +0000 (+0800) Subject: 音乐播放PlayerStat函数优化添加条件判断,提高代码健壮性 X-Git-Tag: v1.3.113-repair_tp~29 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=refs%2Fchanges%2F1632%2Fhead;p=mirrors%2FFD230.git 音乐播放PlayerStat函数优化添加条件判断,提高代码健壮性 --- diff --git a/code/sdk/application/wearable/fd230app/nativeui/player/src/PlayersModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/player/src/PlayersModel.cpp index 4ad93e4d9..b48d4ded1 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/player/src/PlayersModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/player/src/PlayersModel.cpp @@ -89,15 +89,30 @@ int PlayersModel::PlayerStat() // 设置回调函数 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; + } // 申请资源 source = std::make_shared(uri, header); if (source.get() == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "source new fail"); return OHOS_FAILURE; } - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Player uri %s.", uri.c_str()); - playerCtr->SetSource(*source); - playerCtr->Prepare(); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Player uri %s", uri.c_str()); + ret = playerCtr->SetSource(*source); + 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(duration_); WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[%s,%d] GetDuration:%lld, ret:%d", __func__, __LINE__, duration_, ret); if (!isActivateAudioInterrupt) { @@ -123,7 +138,12 @@ int PlayersModel::PlayerStat() } 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) {