void AudioEngine::preload(const ccstd::string &filePath, const std::function<void(bool isSuccess)> &callback) {
if (!isEnabled()) {
callback(false);
return;
}
lazyInit();
if (sAudioEngineImpl) {
if (!FileUtils::getInstance()->isFileExist(filePath)) {
if (callback) {
callback(false);
}
return;
}
sAudioEngineImpl->preload(filePath, callback);
}
}
项目上线做海外机型深度兼容性测试,发现几个崩溃,跟着AI一步步查编译出来的libcocos.so,最后发现音频这里 preload 第一个callback未做安全判断裸调用,某些异常情况就崩了。看了3.8.8引擎源码,这里也还是有问题。