1.7 KiB
1.7 KiB
AudioLoader::Load
方法签名
LoadResult Load(const Containers::String& path, const ImportSettings* settings = nullptr) override;
详细描述
从指定路径加载音频文件,读取文件数据后自动检测音频格式,并创建包含完整音频数据的 AudioClip 对象。
加载流程:
- 调用
ReadFileData(path)读取文件数据 - 若读取失败,返回包含错误信息的
LoadResult - 调用
DetectAudioFormat()检测音频格式 - 创建
AudioClip对象并设置路径、名称、GUID - 调用
SetAudioFormat()和SetAudioData()设置音频属性 - 计算内存占用并返回成功结果
参数
| 参数 | 类型 | 描述 |
|---|---|---|
path |
const Containers::String& |
音频文件的完整或相对路径 |
settings |
const ImportSettings* |
导入设置(当前版本未使用,始终为 nullptr) |
返回值
LoadResult - 成功时包含 AudioClip* 指针,失败时包含错误信息字符串。
示例
#include "Resources/AudioLoader.h"
#include "Resources/ResourceManager.h"
using namespace XCEngine::Resources;
AudioLoader loader;
LoadResult result = loader.Load("assets/audio/bgm_music.ogg");
if (result.IsSuccess()) {
AudioClip* audioClip = result.GetResource<AudioClip>();
printf("Loaded: %s\n", audioClip->m_name.CStr());
printf("Format: %d\n", static_cast<int>(audioClip->GetAudioFormat()));
printf("Size: %zu bytes\n", audioClip->m_memorySize);
} else {
printf("Error: %s\n", result.GetError().CStr());
}
注意事项
- 当前实现
ParseWAVData()方法为空,WAV 格式解析逻辑尚未完成 settings参数当前版本未使用,保留接口兼容性